基于注解的自动装配之@Autowired的原理及注意事项

本文详细解析了@Autowired注解的工作原理,包括如何在Spring IOC容器中查找并装配唯一bean,以及当存在多个候选bean时如何通过@Qualifier注解进行精确匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于注解的自动装配之@Autowired的原理及注意事项

1. @Autowired的原理

首先根据所需要的组件类型到IOC容器中查找

  • 能够找到唯一的bean:直接执行装配

  • 如果完全找不到匹配这个类型的bean:装配失败

  • 和所需类型匹配的bean不止一个

    • 没有@Qualifier注解:根据@Autowired标记位置成员变量的变量名作为bean的id进行匹配

      • 能够找到:执行装配

      • 找不到:装配失败

    • 使用@Qualifier注解:根据@Qualifier注解中指定的名称作为bean的id进行匹配

      • 能够找到:执行装配

      • 找不到:装配失败

2.注意事项

  • @Autowired中有属性required,默认值为true,要求必须完成自动装配,因此在自动装配无法找到相应的bean时,会装配失败,此时会抛出异常:NoSuchBeanDefinitionException
  • 可以将属性required的值设置为false,此时能装配就装配,无法装配则使用属性的默认值
  • 但是实际开发时,基本上所有需要装配组件的地方都是必须装配的,用不上这个属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值