@Resource、@Autowired和@Qualifer三者的区别
Spring中以上三个注解可以用来实现依赖注入,但在使用时知道三者的区别与联系是比较重要的
@Resource使用注意事项
例:
@Resource
CityDao citydao;
【1】 则首先根据类名,将类名首字母小写得到cityDao,然后去Spring的配置文件中寻找id为cityDao的bean,即进行名称匹配
【2】若Spring的配置文件中没有id为cityDao的bean,则再根据类型进行匹配,在配置文件中寻找class为CityDao的bean
@Autowired使用注意事项
例:
@Autowired
CityDao cityDao;
【1】直接根据类型进行匹配,Spring会去配置文件中寻找class为CityDao的bean
@Qualifer使用注意事项
例:
@Autowired
@Qualifer("cityDao2")
CityDao cityDao;
【1】@Qualifer不能单独使用,否则会出现空指针错误
【2】需要配合@Autowired使用,会从Spring配置文件中寻找id为cityDao2的bean,即进行名称匹配