spring中autowired和resource注解的区别

autowired和resource注解都可以将bean注入。
最大的不同之处在于:

  • autowired:
  1. 该注解由spring提供。
  2. 该注解通过类型来查找bean。
  • resource
  1. 该注解由java提供。
  2. 该注解通过name来查找bean。

resource注解举例:

@Resource
Test t;

该bean注入过程如下:
先查找name为test的bean,如果查询不到,则会查询类型为Test的bean。
假如指定了name,代码如下:

@Resource(name="test123")
Test t;

只要此处指定了name属性,那么只会查询name为test123的bean,查询不到即查询不到,报找不到bean的错误。

autowired注解举例

@Autowired
Test t;

查找类型为Test的bean,查询不到就会报错。
如果想要指定使用name查询,则需要配合Qualifier注解使用,配置如下:

@Autowired @Qualifier("baseDao")
Test t;

首先查询类型为Test的bean,如果查询不到则会查询name为baseDao的bean。还查询不到,就会报错了。
另外,Autowired注解可以指定是否为null,使用required=false属性来指定。此时,该bean即使为null也不会报错。配置如下:

@Autowired(required=false) @Qualifier("baseDao")
Test t;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容