springboot创建bean通过构造方法(只有一个构造方法的情况下)注入其他bean(参数)

简介

spring容器本身在创建bean的时候,会自动从容器中查找 参数 类型的 bean,并将其注入到构造方法中。

例子

在 AlgcPropertiesAutoConFiguration 类中,构造方法接收一个 AlgcProperties 类型的参数。假设此时容器中已经存储在 AlgcProperties类型的bean, AlgcPropertiesAutoConFiguration 的 bean 实例时,会自动从容器中查找 AlgcProperties 类型的 bean,并将其注入到构造方法中。

java 复制代码
@Component
public class AlgcPropertiesAutoConFiguration {
    private AlgcProperties algcProperties;

    public AlgcPropertiesAutoConFiguration(AlgcProperties algcProperties) {
        this.algcProperties = algcProperties;
    }
    }

定义AlgcPropertiesAutoConFiguration的属性algcProperties

java 复制代码
private AlgcProperties algcProperties;

通过构造方法赋值,由于这里的AlgcPropertiesAutoConFiguration类使用了@Configuration注解,会被spring容器管理,并且自动创建,所以构造方法中的algcProperties参数,会自动从spring容器中査找AlgcProperties 类型的 bean,并将其注入到构造方法中。

java 复制代码
public AlgcPropertiesAutoConFiguration(AlgcProperties algcProperties) {
        this.algcProperties = algcProperties;
    }

如果AlgcProperties 类型的 bean有多个,那就需要使用@Qualifier注解指定具体的bean,这里指定了一个名为specificAlgcProperties的bean

java 复制代码
public AlgcPropertiesAutoConFiguration(@Qualifier("specificAlgcProperties")AlgcProperties algcProperties) {
        this.algcProperties = algcProperties;
    }
相关推荐
程序员码歌43 分钟前
【零代码AI编程实战】AI灯塔导航-总结篇
android·前端·后端
Sirius Wu1 小时前
Maven环境如何正确配置
java·maven
java坤坤1 小时前
GoLand 项目从 0 到 1:第八天 ——GORM 命名策略陷阱与 Go 项目启动慢问题攻坚
开发语言·后端·golang
元清加油1 小时前
【Golang】:函数和包
服务器·开发语言·网络·后端·网络协议·golang
健康平安的活着2 小时前
java之 junit4单元测试Mockito的使用
java·开发语言·单元测试
bobz9652 小时前
GPT-4.1 对比 GPT-4o
后端
Java小白程序员2 小时前
Spring Framework :IoC 容器的原理与实践
java·后端·spring
小小愿望3 小时前
前端无法获取响应头(如 Content-Disposition)的原因与解决方案
前端·后端
xuTao6673 小时前
Easy Rules 规则引擎详解
java·easy rules
追逐时光者4 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 50 期(2025年8.11-8.17)
后端·.net