spring - 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
所以我观察到,如果我有带有下划线(_)的变量名,则不会填充属性值。
有什么方法可以通过具有下划线的变量来获取值?
解决方案
是的,可以 100% 获得您的配置值。
都是关于外壳的!在里面CustomProperties
简单地命名你的第一个属性propertyOne
......并适当地重构你的getter/setter......你会很高兴!
在将配置字段转换为您的配置类/属性时,Spring 使用了驼峰式外壳。因此,不要匹配属性的大小写,而是遵循与配置文件中的属性名称等效的驼峰式大小写。
示例:PROPERTY_ONE
转换为propertyOne
推荐阅读
- matlab - 如何从日期时间中提取特定的时间范围?
- c++ - 如何让 UDP 套接字丢弃最早排队的数据包而不是新的传入数据包?
- javascript - React Native 如何调用 api 或无限期运行函数
- docker - Centos - Yum 更新错误 - “HTTP 错误 403 - 禁止”
- r - 如何观察列中每一行中存在的 selectInput 事件
- reactjs - 被 CORS 策略阻止“......没有 HTTP ok 状态”(Amplify 和 ReactJS、AWS Gateway 和 Lambda)
- javascript - 链式获取立即获得第一个结果
- typescript - 在 NativeScript 7 中使用“android”、“UIApplication”、“UIStatusBarAnimation”关键字的正确方法是什么?
- ios - 视频流未在 AVPlayer 中播放
- jupyter - 在 jupyterhub 单用户服务器上远程运行笔记本