@Autowired 与 @Resource的区别

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。

1、共同点

两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。

2、不同点

@Autowired默认按byType自动装配,而@Resource默认byName自动装配。

@Autowired只包含一个参数:required,表示是否开启自动准入,默认是true。而@Resource包含七个参数,其中最重要的两个参数是:name 和 type。

@Autowired如果要使用byName,需要使用@Qualifier一起配合。而@Resource如果指定了name,则用byName自动装配,如果指定了type,则用byType自动装配。

@Autowired能够用在:构造器、方法、参数、成员变量和注解上,而@Resource能用在:类、成员变量和方法上。

@Autowired是spring定义的注解,而@Resource是JSR-250定义的注解。

 

 

 

 

 

 

 

 

posted @ 2021-10-03 14:10  Sakimir  阅读(16)  评论(0)    收藏  举报