繁体   English   中英

java.util 中的 getProperty() 方法无法识别 springboot 的 application.properties 中 ${.} 中的键值变量

[英]getProperty() method in java.util not able to recognize keys value variables in ${.} inside springboot's application.properties

我有一个 springboot 应用程序,其中 application.properties 看起来像这样 -

keyA=valueA
keyB=valueB
keyC=${keyA}

所以我知道使用@Value注解,我可以正确地得到keyC的值为“valueA”。 但是,我的程序目前正在使用一个只读文件,其中getProperty()方法将keyC的值返回为“${keyA}”而不是“valueA”。

示例代码

只读

public String getPropertyValue(String prop){
FileReader reader = new FileReader("app.properties");
Properties p = new Properties();
p.load(reader);
System.out.println(p.getProperty(prop));
}
getPropertyValue("keyC");

Output

${keyA}

我将无法修改只读文件。 我想知道是否有任何合适的替代方法可以在 application.properties 中添加${keyA}之类的变量,以便getPropertyValue方法可以识别它。 任何帮助将不胜感激,谢谢。

您必须自己对属性进行后处理,将键名与模式“^${(.*)}$”匹配的所有值替换为作为模式组 1 的键的相应值。 (注意 the.properties 中可能存在错误的值交叉引用...这可能会导致无限循环...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM