@Inject和@Autowired之间的区别

@Inject和@Autowired这两个注释都用于在应用程序中自动装配。

@Inject批注是Java 6中引入的Java CDI的一部分,而@Autowire批注是spring框架的一部分。因此,两个注释都实现相同的目的,我们可以在应用程序中使用其中的任何注释。

序号@注入@Autowired
1
基本的
它是Java CDI的一部分
它是Spring框架的一部分
2
需要
它没有必填属性
它具有必填属性
3
默认范围
自动装配的bean的默认范围是Singleton
注入bean的默认范围是原型
4
歧义性
如果要注入的bean含糊不清,则应在代码中添加@Named限定词。
如果注入用的豆类含糊不清,则应在代码中添加@Qualifer限定词。
5
优点
它是Java CDI的一部分,因此它不依赖于任何DI框架。它使您的系统松散耦合。
它使您的应用程序与Spring框架紧密结合。将来,如果您想转移到另一个DI框架,则需要重新配置您的应用程序。

@Injection注释的示例

public class InjectionExample {
   @Inject
   private CarBean carbean;
}

@Autowired注释的示例

public class AutowiredExample {
   @Autowired
   private CarBean carbean;
}