Spring中@Autowired@Resource和@Inject注解区别
@Autowired:来源于spring框架自身默认是byType自动装配,当配合了@Qualifier注解之后,
由@Qualifier实现byName装配。它有一个required属性,用于指定是否必须注入成功,默认为true。
@Resource:来源于JSR-250规范。
在没有指定name属性时是byType自动装配,当指定了name属性之后,采用byName方式自动装配。
@Inject:来源于JSR-330规范。(JSR330是]cp给出的官方标准反向依赖注入规范。)它不支持任何属性,但是可以配合@Qualifier或者@Primary注解使用。同时,它默认是采用byType装配,当指定了1SR-330规范中的@Named注解之后,变成byName装配。属性:无使用场景:在使用@Autowired注解的地方,都可以替换成@Inject。它也可以出现在方法上,构造函数上和字段上但是需要注意的是:因为IRE无法决定构造方法注入的优先级,所以规范中规定类中只能有一个构造方法带@Inject注解。