- @Autowired
- @Resource
- 什么时候用@Resource?
@Autowired
@Autowired是我们平时开发中用的比较多的自动装备bean的注解。
@Autowired由Spring提供,根据类的Type(类型)进行IOC容器中的寻找并且装配,如:
会去Ioc容器中找到Type为User的对象。如果有多个,只返回第一个。
@Resource
@Resource默认根据类的Name(名称)进行IOC容器中的寻找并且装配,如:
也可以指定根据类的Type(类型)进行IOC容器中的寻找并且装配,如:
如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。
如果既没指定name,也没指定type,则自动按照byName方式进行装配。如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配。
什么时候用@Resource?
如果一个接口,有多个实现类如
一个IUser接口,分别有UserImpl01、UserImpl02。
那么在装配的时候我们就要指定我们需要装配哪一个实现类。这个@Autowired做不到,@Autowired只会找出默认找到的第一个。(不会报错,有些文章说的会报错)
这个时候就:



