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注解,他的注入源码,是什么样子的呢?

posted @ 2020-03-24 09:20  菊次郎的幻想  阅读(449)  评论(0编辑  收藏  举报

begin