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;
    }
相关推荐
彭于晏Yan9 分钟前
OkHttp 与 RestTemplate 技术选型对比
java·spring boot·后端·okhttp
woniu_buhui_fei13 分钟前
工作中常用的注解梳理
后端
金銀銅鐵19 分钟前
[Java] 如何理解 class 文件中字段的 descriptor?
java·后端
我是一颗柠檬23 分钟前
【MySQL全面教学】MySQL基础与环境搭建Day1(2026年)
数据库·后端·sql·mysql·database
我是一颗柠檬23 分钟前
【MySQL全面教学】MySQL数据类型详解Day2(2026年)
数据库·后端·sql·mysql·database
5008424 分钟前
Graph Engine 是什么,为什么需要它
java·人工智能·性能优化·ocr·wpf
怒放吧德德27 分钟前
JDK 版本一键切换工具(windows)
后端·shell
未若君雅裁27 分钟前
服务雪崩、降级、熔断与服务保护
java·微服务
就叫_这个吧44 分钟前
Java实现线程间的通讯--使用synchronized关键字和JUC方式实现
java·开发语言
爱上语文1 小时前
2026在线会议软件推荐:8款工具对比评测与多人协作选型指南
后端