笔记:@Autowire和@Resource注解的区别


@Autowire和@Resource注解的区别

@Autowire

  1. spring提供
  2. 属性:required
  3. 作用范围:字段、setter方法、构造器上
  4. 默认按类型(by-type)装配且对象不可为空(可设置 required=false 允许对象为空)
  5. 结合 @Qualifier(“beanName”) 可实现按名称装配

@Resource

  1. jdk提供

  2. 属性:name、type

  3. 作用范围:字段、setter方法

  4. 默认按名称(by-name)装配,名称可以通过name属性指定

    • 未指定name的情况下:
      1. 当注解在字段上时,默认取name=字段名称装配
      2. 当注解在setter方法上时,默认取name=属性名称装配
    • 若按照名称未匹配,则自动按类型匹配
  5. 装配顺序

    • 同时指定name和type属性:则找到唯一匹配的bean装配,未找到则抛异常
    • 指定name属性:按照名称(by-name)装配,未找到则抛异常
    • 指定type属性:按照类型(by-type)装配,未找到或者找到多个则抛异常
    • 未指定name属性又未指定type属性:先按照名称(by-name)装配,如果未找到,则按照类型(by-type)装配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值