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

Spring Boot 2.7.4中@ConfigurationProperties嵌套属性注入为null问题求助

Spring Boot 2.7.4嵌套@ConfigurationProperties属性为null的解决办法

Spring Boot完全支持嵌套属性注入,你遇到的child为null的问题并非框架不支持该场景,而是代码细节存在疏漏,以下是排查和解决方法:

可能的问题点及修复方案

1. 确保Person类存在无参构造函数

Spring实例化嵌套配置对象时,默认需要调用无参构造函数。如果你的Person类仅定义了带参构造,Spring无法创建child实例,导致属性为null。添加无参构造即可:

public class Person {
    private String name;
    private int age;
    private Person child;

    // 添加无参构造
    public Person() {}

    // 字段对应的getter、setter
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
    public Person getChild() { return child; }
    public void setChild(Person child) { this.child = child; }
}

2. 检查child字段的setter方法正确性

确认setChild方法是public访问权限,参数类型为Person,方法名严格遵循JavaBean规范(setChild)。错误的方法签名或访问权限会导致Spring无法填充该属性。

3. @NestedConfigurationProperty可省略

该注解仅用于给IDE提供配置元数据提示(比如让IDE识别嵌套配置的补全),不影响Spring实际的属性注入逻辑,有无该注解都不会导致child为null。

验证修改

调整代码后,Spring Boot就能正确解析YAML中的child节点,将对应值填充到Person对象的child属性中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:55:16