Autowired和Resource
很多人问起Autowired和Resource
都弄不明白 是怎么一回事
Autowired是Spring标准的一种bean注入
Resource是J2EE标准的一种bean注入
这虽然是一个老生常谈的问题,那么一定还有具体的区别
来看看
首先,autowired是通过class来注入类的,即按照类型来注入的,
这里我们要知道一个常识,任何接口都是一个类型,那么在实例一个类的时候,比如
@Autowired
public UserService userService;
显然,这句话的意思,就是让spring在容器中查找userService这个bean,
这里当然还有一个常识,spring的依赖注入,就是统一管理bean,在我们使用Autowired后,我们的spring,会按照注入名userService来查找名为userService的bean
问题来了,如果只有一个实现类的话,那是没有问题的,直接在interface的新实例上查找该bean,这样的注入方式,是能够将唯一的实现类(例如userServiceImpl)提交给spring容器来管理的,
但是如果存在两个实现类,例如,userServiceOneImpl和userServiceTwoImpl,这两种实例是没有办法,只,仅仅,通过注入userService,这一接口类型,来提交实例类的,
看到这里,我们不禁好奇,spring的Autowired注解,他的注入源码,是什么样子的呢?