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;
    }
相关推荐
哦虎!几秒前
【JavaEE】网络原理 - TCP/IP
java
东风微鸣5 分钟前
把 Tailscale 接进 Prometheus 监控
java·数据库·prometheus
汉堡大王952716 分钟前
单次输出拉到100万Token:拆完 Gemini 4 Argon 的续写协议,才看懂谷歌这7个月在憋什么
前端·人工智能·后端
看浪的路人18 分钟前
第9讲:大模型应用监控与可观测性——OpenTelemetry + Prometheus + Grafana 全链路追踪
java·前端·spring
大侠归来29 分钟前
事务能回滚吗?Pipeline 算事务吗?
java·数据库·oracle
蜗牛互联网30 分钟前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 产品定位、功能模块与客户端原型解读
java·开发语言·交友
Wang's Blog1 小时前
Java 项目实战:交友项目 —— 项目导读与整体架构
java·架构·交友
武子康1 小时前
ESP32 唤醒成功,离线命令为什么没有执行?
人工智能·后端·agent
挖掘狂人1 小时前
SQL 注入:一行代码如何撬开整个数据库
后端·sql·数据分析