@Autowired注解 -【Spring底层原理

  • @Autowired:默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用(Spring提供)
  • @Qualifier():指定装配的bean,多个实例时可以结合@Autowired一起使用
  • @Primary:自动装配时当出现多个bean候选者时,被注解为@Primary的bean将作为首选者
  • @Resource:默认按名称装配,当找不到与名称匹配的bean才会按类型装配(不支持@Primary@Autowired(required = false)功能,JDK提供)
  • @Inject:需要导入javax.inject的包,和Autowired功能一样,但是没有required=false功能(JDK提供)

【2】自动装配

Spring利用依赖注入(DI)完成对IOC容器中各个组件的依赖关系赋值

@Autowired自动注入(Spring提供的):

  • 默认优先按照去容器中找对应的组件:applicationContext.getBean()

  • 如果找到多个相同类型的组件,再将属性的名称作为组件的ID去容器中查找

  • @Qualifier()注解:该注解指定需要装配的组件ID,而不是使用属性名

  • 自动装配默认必须要对属性赋值,没有就会报错,可以使用@Autowired(required = false)指定非必须就不会报错

  • @Primary注解:自动装配时当出现多个bean候选者时,被注解为@Primary的bean将作为首选者,否则将抛出异常,如果使用了@Qualifier()指定装配的bean,则还是使用明确指定装配的bean

@Resource(JSR250)和@Inject(JSR330)(JDK提供的)

@Resource:

  • 默认按照组件名称进行装配,也可以指定名称进行装配

  • 当找不到与名称匹配的bean会按类型装配

  • 不支持@Primary@Autowired(required = false)功能

  • 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。

  • 如果指定了na

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值