@Resource 是如何工作的
跳到导航
跳到搜索
@Resource 注解与 @Autowired 类型,也是用来进行依赖注入的,
@Resource 是 Java 层面所提供的注解,@Autowired 是 Spring 所提供的注解,它依赖注入的底层实现逻辑也不同。
@Resource 注解中有一个 name 属性,针对 name 属性是否有值,@Resource 的依赖注入底层流程是不同的。
@Resource 如果 name 属性有值,那么 Spring 会直接根据指定的 name 值去 Spring 容器找 Bean 对象,如果找到了则成功;如果没有找到,则报错。
如果 @Resource 中的 name 属性没有值,则:
1、先判断该属性名字在 Spring 容器中是否存在 Bean 对象。
2、如果存在,则成功找到 Bean 对象进行注入。
3、如果不存在,则根据属性类型去 Spring 容器找 Bean 对象,找到一个则进行注入。