@Autowired 与 @Resource 简单总结比较

1 篇文章 0 订阅

1.@Autowired是默认按照类型装配的, 可以对成员变量、方法以及构造函数进行注释,而 @Qualifier 的标注对象是成员变量、方法入参、构造函数入参。 
   @Resource默认是按照名称装配的byName
   @Resource装配顺序 
  1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常 
  2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常 
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常 
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行              匹配,如果匹配则自动装配

2.共同点:装配bean. 写在字段上,或写在setter方法

3.不同点:
 @Autowired 默认按类型装配 。依赖对象必须存在,如果要允许null值,可以设置它的required属性为false
    @Autowired(required=false)。也可以使用名称装配,配合@Qualifier注解        
    @Resource 默认按名称进行装配,通过name属性进行指定

总结:@Autowired自动注解,举个 : 一个接口,俩个实现类,Autowired就不知道注入哪一个实现类,需要通过@Qualifier("xxx") 指定类名,xxx为实现类类名的小写,而Resource有name属性,可以区分。

笔者刚接触spring框架不久,水平有限,若有错误请指出,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值