日常使用Spring的过程中,有些很常用的注解,其中,Autowired和Resource使用频率极高,它们都是自动装配的作用,但它们有什么区别呢?
@Autowired
在springboot从入门到实战这本书中,是这样介绍的:该注解可以对类成员变量、方法及构造方法进行标注,完成自动装配的工作。通过@Autowired的使用来消除setter和getter方法。默认按照Bean的类型进行装配。
@Resource
而对于Resource的注解,其实跟Autowired的作用是一样的。区别在于:该注解默认是按照名称来装配注入的,只有当找不到与名称匹配的Bean时才会按照类型来装配注入,而Autowired默认是按照Bean的类型进行装配。Resource注解有两个属性,即name和type。name就是指定Bean实例名称,也就是按照名称来装配注入;type即指定Bean类型,也就是按照Bean的类型进行装配。
补充:@Qualifier
这个注解一般是跟@Autowired一起用,当Autowired需要按照名称来装配注入的时候,就跟此注解搭配使用,Bean的实例名称由@Qualifier的参数去指定。