首页 > 解决方案 > Spring 自定义配置不使用下划线填充属性

问题描述

我正在尝试使用属性填充自定义类。以下是我的自定义属性类:

@Configuration
@ConfigurationProperties(prefix = "foo.bar")
public class CustomProperties{

    private String PROPERTY_ONE;

    private String propertyTwo;

    //setters 
    //getters
}

我的属性application.properties是:

foo.bar.PROPERTY_ONE=some text
foo.bar.PROPERTY_TWO=some other text

当我试图从中使用价值时,CustomProperties我得到的是:

customProperties.getPROPERTY_ONE() = null
customProperties.getPopertyTwo() = some other text

所以我观察到,如果我有带有下划线(_)的变量名,则不会填充属性值。

有什么方法可以通过具有下划线的变量来获取值?

标签: springspring-boot

解决方案


是的,可以 100% 获得您的配置值。

都是关于外壳的!在里面CustomProperties简单地命名你的第一个属性propertyOne......并适当地重构你的getter/setter......你会很高兴!

在将配置字段转换为您的配置类/属性时,Spring 使用了驼峰式外壳。因此,不要匹配属性的大小写,而是遵循与配置文件中的属性名称等效的驼峰式大小写。

示例:PROPERTY_ONE转换为propertyOne


推荐阅读