如何解决Spring SpEL:如何将一个属性的值基于另一个属性
我想在Spring Boot应用程序中设置2个属性的值,其中第二个属性严格基于第一个属性。
@Value("${main.propertyOne: 0.67}")
void setPropertyOne(float propertyOne) {
this.propertyOne = propertyOne;
}
@Value("#{${main.propertyTwo:(${main.propertyOne: 0.67} + 0.10)}}")
void setPropertyTwo(float propertyTwo) {
this.propertyTwo = propertyTwo;
}
通过这种方法,propertyOne
始终正确设置为默认值(0.67)或我在属性文件中设置的默认值,但是propertyTwo
还是我在属性文件中设置的值。属性文件(可以)或0.77。实际上,它实际上从未基于propertyOne
的值。
我想要的行为是:
- 如果
propertyOne
设置为0.48,而propertyTwo
未设置,则默认为0.48 + 0.10 = 0.58 - 如果未设置
propertyOne
,则默认值为0.67,propertyTwo
默认为0.67 + 0.10 = 0.77
这是可以做的吗?
解决方法
使用
@Value("#{${main.propertyTwo:(T(Float).parseFloat('${main.propertyOne: 0.67}') + 0.10)}}")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。