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

Java Spring应用中application.yml配置属性无法加载怎么解决?

解决Spring无法从application.yml获取配置属性的问题

核心问题

你的ConfigProperties类缺少getter和setter方法,Spring的@ConfigurationProperties依赖setter方法注入配置值,没有这些方法的话,属性始终会是null。

修复步骤

1. 给配置属性类添加getter/setter

手动添加方法:

@ConfigurationProperties(prefix = "application")
public class ConfigProperties {

    private String uploadpath;

    public String getUploadpath() {
        return uploadpath;
    }

    public void setUploadpath(String uploadpath) {
        this.uploadpath = uploadpath;
    }
}

如果使用Lombok,可以用@Data注解自动生成getter、setter等方法,简化代码:

@Data
@ConfigurationProperties(prefix = "application")
public class ConfigProperties {
    private String uploadpath;
}

2. 确保配置类被Spring识别

  • 方法一:在启动类添加@EnableConfigurationProperties(ConfigProperties.class),此时ConfigProperties不需要加@Configuration注解。
  • 方法二:给ConfigProperties添加@Configuration注解,同时确保该类所在的包被Spring组件扫描覆盖(启动类的@SpringBootApplication默认扫描自身所在包及子包)。

3. 验证application.yml的格式

确保yml文件的缩进正确(用2个空格缩进,不要用制表符),你的配置格式是正确的,示例如下:

application:
  uploadpath: src/main/resources/upload

验证修复

在DocumentService中调用props.getUploadpath()就能获取到配置值了,构造注入的方式是正确的,不需要改成@Autowired。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:03:18