@Autowired
用于对Bean的属性变量,属性的setter()方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动装配工作。默认按照Bean的类型进行装配。
@Resource
其作用与@Autowired
一样,区别在于@Autowired
默认按Bean类型进行装配,而@Resource
默认是按照Bean的实例名称进行匹配。@Resource
中有两个重要的属性,name和type。spring将name属性解析为Bean的实例名称,type类型解析为Bean的实力类型。若指定name属性,则按照实例名称进行装配;若制定type属性,则按照Bean类型进行装配;若都不指定,则先按照Bean的实例名称进行装配,不能匹配时再按照Bean类型进行装配;若都无法匹配,则抛出NoSuchBeanDefinitionException
异常。
@Qualifier
与@Autowired
注解配合使用,会将默认的按Bean类型装配修改为按Bean的实例名称进行装配,Bean的实力名称有@Qualifier
注解指定的参数指定。