“@Resource 是如何工作的”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
 
(未显示同一用户的1个中间版本)
第4行: 第4行:
  
 
@Resource 注解中有一个 name 属性,针对 name 属性是否有值,@Resource 的依赖注入底层流程是不同的。
 
@Resource 注解中有一个 name 属性,针对 name 属性是否有值,@Resource 的依赖注入底层流程是不同的。
 +
 +
@Resource 如果 name 属性有值,那么 Spring 会直接根据指定的 name 值去 Spring 容器找 Bean 对象,如果找到了则成功;如果没有找到,则报错。
 +
 +
如果 @Resource 中的 name 属性没有值,则:
 +
 +
1、先判断该属性名字在 Spring 容器中是否存在 Bean 对象。
 +
 +
2、如果存在,则成功找到 Bean 对象进行注入。
 +
 +
3、如果不存在,则根据属性类型去 Spring 容器找 Bean 对象,找到一个则进行注入。

2024年7月21日 (日) 04:04的最新版本

@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 对象,找到一个则进行注入。