@Autowired和@Resource的异同点

编程入门 行业动态 更新时间:2024-10-15 14:17:40

@Autowired和@Resource的<a href=https://www.elefans.com/category/jswz/34/1767857.html style=异同点"/>

@Autowired和@Resource的异同点

相同点

  都是为了自动注入bean而使用


不同点

(1)来源不同

@Autowired属于Spring框架

@Resource属于java

(2)参数不同

 @Autowired只有一个required参数,默认ture(找不到被注入对象时会报错),false(找不到被注入对象时就不管了)

 @Resource主要有name和type两个参数

(3)自动装配的方式不同

 @Autowired默认ByType方式装配

如果要使用Byname,需要配合注解@Qualifier使用

value为Bean的ID 

创建一个测试Bean

@Resoure默认ByName方式装配(即Bean的名称)

如果指定了name,则用Byname方式装配

如果指定了type,则用Bytype方式装配

(4)自动装配顺序不同

@Autowired默认按照ByType进行匹配,如果发现多个bean,又按照ByName方式进行匹配,如果还发现多个,则报出异常

@Resoure则有四种情况

  1. 指定了name和type:会在容器中找到唯一的Bean,找到自动装配,找不到抛出异常
  2. 只指定了name:会根据name去Bean中找到与之相等name属性的Bean,找到自动装配,找不到抛出异常
  3. 只指定了type:会根据type去Bean中找到类型匹配的唯一Bean,找不到或找到多个都会抛出异常
  4. 没有指定name和type:先按照ByName方式查找,找不到,回退为ByType方式查找,找不到或找到多个都会抛出异常

 

更多推荐

@Autowired和@Resource的异同点

本文发布于:2024-03-09 00:30:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1723032.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:异同点   Autowired   Resource

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!