spring注解方式总结

注解中的@Component与@Resource与XML方式对比

对于@Component的名字问题和@Resource位置问题

 

"喜新厌旧"使用见名知意的注解

@Autowired即自动注入,那么它是以什么规则注入的呢?

这里我们先要知道@Autowired在注入时,默认的查找顺序

根据官方说法是先找名字(set方法后的名字),再找类型,最后找构造器

那么我们用一种特殊的方式来说明一下@Autowired怎么为自己类当中的属性自动注入值

 

这时我们看到UserDao接口下有两个实现类,根据规则@Autowired先找名字,此时UserDaoTest实现类中的@Repository正好叫userDao(大小写不敏感)所以@Autowired将UserDaoTest注入到属性上?

那么这时候要是UserDaoTest实现类中的@Repository没有名字会怎么样呢?答案是:会报错的,因为先根据名字找是找不到可以注入的类的,只能通过userdao接口下的实现类去查找注入,但这时有两个实现类(要是只有一个就不会报错了,直接注入了,没啥说的),它就不会知道选哪一个。

这时可以用上 @Qualifier注解了如下图

这样就可以准确注入了!!!

 

posted @ 2016-08-13 23:33  我媳妇是可爱的小胖子  阅读(157)  评论(0)    收藏  举报