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;
    }
相关推荐
一只叫煤球的猫15 小时前
开个新坑,从头开始完整拆解 Spring AI 2.0 的源码
后端·面试·aigc
GeekZHR15 小时前
C语言指针进阶补充6:动态内存管理、mem系列内存函数、复杂指针声明,一次补齐指针的“三大盲区“
java·c语言·算法·指针
侧耳倾听11115 小时前
java 日志框架简介
java·开发语言
自进化Agent智能体15 小时前
Hermes Cron 定时任务 —— 让 Agent 自动工作
后端
我不是码神6616 小时前
Windows 下 Codex CLI 报“拒绝访问 (os error 5)”:先查入口,再查配置
后端·chatgpt
她的男孩16 小时前
我用 LLM 把后台 CRUD 效率提升 10 倍:AI 代码生成器的架构与落地实践
java·后端·架构
程序员cxuan16 小时前
本地跑一个 Qwen 3.8,你将拥有一个 Opus 4.6
人工智能·后端·程序员
土司大王16 小时前
LeetCode hot100——移动零
java·算法·leetcode
thefool11226616 小时前
相同的树`
java
凤山老林17 小时前
高保真集成测试:Spring Boot 结合 Testcontainers 的工程落地
spring boot·后端·集成测试