You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

针对私有属性的依赖注入疑问:构造注入示例探讨

Spring构造函数注入示例解析

输入图片描述
输入图片描述

代码示例解析

这段代码是Spring Boot中构造函数注入的标准用法,逐行拆解如下:

@Service
public class DatabaseAccountService implements AccountService {

    private final RiskAssessor riskAssessor;

    public DatabaseAccountService(RiskAssessor riskAssessor) {
        this.riskAssessor = riskAssessor;
    }

    // ...

}
  1. @Service注解:将DatabaseAccountService标记为Spring容器管理的Bean,Spring启动时会自动扫描并创建该类的实例。
  2. private final RiskAssessor riskAssessor:声明不可变的依赖字段,确保注入后依赖不会被篡改,同时强制依赖必须在初始化时赋值,从根源避免空指针问题。
  3. 构造函数注入:通过类的构造函数接收RiskAssessor类型的Bean。Spring容器会自动查找容器中已注册的RiskAssessor实现类实例,在创建DatabaseAccountService对象时自动完成注入。

这种注入方式的核心优势:

  • 明确类的依赖关系,代码可读性更强。
  • 天然支持依赖不可变,符合编程规范。
  • 单元测试时可轻松传入模拟的RiskAssessor实例,无需依赖Spring容器。

内容的提问来源于stack exchange,提问作者Kifsif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:45:36