@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;
}

更新於:2020年9月9日

8K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告