@Inject 和 @Autowired 的區別
@Inject 和 @Autowired 註解都用於應用程式中的自動裝配。
@Inject 註解是 Java CDI 的一部分,在 Java 6 中引入,而 @Autowired 註解是 Spring 框架的一部分。這兩個註解都實現相同的目的,因此,我們可以在應用程式中使用其中任何一個。
| 序號 | 關鍵點 | @Inject | @Autowired |
|---|---|---|---|
| 1 | 基礎 | 它是 Java CDI 的一部分 | 它是 Spring 框架的一部分 |
| 2 | 必需 | 它沒有required屬性 | 它有 required 屬性 |
| 3 | 預設範圍 | 自動裝配 bean 的預設範圍是單例 | 注入 bean 的預設範圍是原型 |
| 4 | 歧義 | 如果 bean 注入存在歧義,則應在程式碼中新增 @Named 限定符。 | 如果 bean 注入存在歧義,則應在程式碼中新增 @Qualifier 限定符。 |
| 5 | 優勢 | 它是 Java CDI 的一部分,因此它不依賴於任何 DI 框架。它使您的系統鬆散耦合。 | 它使您的應用程式與 Spring 框架緊密耦合。將來,如果您想遷移到另一個 DI 框架,則需要重新配置您的應用程式。 |
@Injection 註解示例
public class InjectionExample {
@Inject
private CarBean carbean;
}@Autowired 註解示例
public class AutowiredExample {
@Autowired
private CarBean carbean;
}
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP