Spring中的Autowired、Qualifier、Resource注解详解
三者的关系:Autowired+Qualifier = Resource
·
Autowired、Qualifier、Resource注解详细总结
1.Autowired、Qualifier
Autowired默认根据类型注入,若是同一个类型存在多个bean,则会根据名称查找bean,根据哪个名称呢,其实是根据注入类型的属性名。
@Autowired
SupplierService supplierService;
假如存在上面的代码,默认是根据SupplierService 查找bean,如果有多个,则根据supplierService来作为beanName查找对应bean。如果这里还找不到则报异常,顺带说一下类型注入时如果不指定名称则是根据类型的首字母小写作为beanName。那如何解决使用Autowired时多个实例bean的问题呢,这里就可以使用Qualifier注解了,可以通过该注解限定名称,来达到多bean时取特定的bean。
2.Resource
再说说Resource,假如有如下代码:
@Resource
SupplierService supplierService;
默认情况下Resource根据名称注入,根据哪个名称呢也就是supplierService这个属性名,如果指定了name属性则是根据name属性。如果根据名称找不到,则根据type进行注入,如果根据type找到了多个,也会报错,所以使用Resource时最好通过name这一层就把需要的bean过滤到。
更多推荐
所有评论(0)