@Autowired注解

@Autowired 注解用法

  • 应用于构造函数
  • 应用于setter方法
  • 应用于具有任意名称和多个参数的方法
  • 应用于字段,或者将其与构造函数混合
  • 将 @Autowired 注释添加到需要该类型数组的字段或方法,则 Spring 会从ApplicationContext 中搜寻符合指定类型的所有 bean
public class MovieRecommender {
    @Autowired
    private MovieCatalog[] movieCatalogs;
    // ...
}

// set和map类型的
public class MovieRecommender {
    private Set<MovieCatalog> movieCatalogs;
    private Map<String, MovieCatalog> movieCatalogs;
    @Autowired
    public void setMovieCatalogs(Set<MovieCatalog> movieCatalogs) {
        this.movieCatalogs = movieCatalogs;
    }
    @Autowired
    public void setMovieCatalogs(Map<String, MovieCatalog> movieCatalogs) {
        this.movieCatalogs = movieCatalogs;
    }
    // ...
}

@Autowired 注解的作用

这个注解是属于 Spring 的容器配置的一个注解,与它同属容器配置的注解还有:@Required, @Primary, @Qualifier 等等。@Autowired 注解是一个用于容器(container)配置的注解。

直接从字面意思来看,@autowired 注解来源于英文单词 autowire,这个单词的意思是自动装配的意思。自动装配又是什么意思?这个词语本来的意思是指的一些工业上的用机器代替人口,自动将一些需要完成的组装任务,或者别的一些任务完成。而在 Spring 的世界当中,自动装配指的就是使用将 Spring 容器中的 bean 自动的和我们需要这个 bean 的类组装在一起。

@Autowired 注解的实现

Java 的注解实现的核心技术是反射;
在 Spring 源代码当中,Autowired 注解位于包 org.springframework.beans.factory.annotation 之中, Spring 对 autowire 注解的实现逻辑位于该包下的类:AutowiredAnnotationBeanPostProcessor 之中;
使用 @Autowired 注入的 bean 对于目标类来说,从代码结构上来讲也就是一个普通的成员变量,@Autowired 和 Spring 一起工作,通过反射为这个成员变量赋值,也就是将其赋为期望的类实例。

posted @   Abserver  阅读(6096)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示