Spring注解之@Autowired自动装配bean 综述

  @Autowired的工作原理是什么?在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowired、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。

  @Autowired:属于Spring 的org.springframework.beans.factory.annotation包下,可用于为类的属性、构造器、方法进行注值。

  @Resource:不属于Spring的注解,而是来自于JSR-250位于java.annotation包下,使用该annotation为目标bean指定协作者bean。

  @Autowired注解自动装配具有兼容类型的单个bean属性,如指定的xxxService等。

  -构造器,普通字段(即使是非public),一切只有参数的方法都可以应用@Autowired。

  -默认情况下,当IOC容器里存在多个类型兼容的bean时,通过类型的自动装配将无法工作。此时可以在@Qualifiter注解里提供bean的名称,Spring允许对方法的入参标注 @Qualifiter以指定注入bean的名称。

  -@Autowired注解也可以应用在数组类型的属性上,此时Spring将会把所有匹配的bean进行自动匹配。

  -@Autowired注解也可以应用在集合属性上,此时Spring读取该集合的类型信息,然后自动装配所有与之兼容的bean。

  -@Autowired注解用在java.util.Map上时,Map的key必须是String类型,那么Spring将自动装配与之Map值类型兼容的bean,此时bean的名称作为键值。

  相关@Autowired注解的更详细介绍,请移步如下文章:

  1. Spring注解之@Autowired组件装配
  2. Spring注解之@Autowired:装配构造函数和属性
  3. Spring注解之@Autowired:Setter 方法上使用@Autowired注解
  4. Spring注解之@Autowired:注入Arrays, Collections, and Maps

 

posted @   楼兰胡杨  阅读(995)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示