有没有一种方法可以在应用程序 .properties 文件中使用 Java -D 参数,这样当我在特定键值上加载属性时,部分值将替换为 -D 参数。
我有一个像这样的 app.properties 文件
example.file=file:/Users/XXXX/assets/tables/overage/test1.xls
example.template.file=file:/Users/XXXX/assets/tables/overage/test2.xls
example.mapping.file=file:/Users/XXXX/assets/tables/overage/test3.properties
我想将“file:/Users/XXXX/assets/tables/”提取到 -D 参数,以使我的属性文件独立于服务器环境。
示例:
Jvm 参数:
-Dfilepath="文件:/Users/XXXX/assets/tables/"
我尝试过这样的事情
example.file={filepath}overage/test1.xls
所以当我调用下面的代码并使用某种机制时,它应该用环境变量替换文件路径。
Properties prop = new Properties();
FileInputStream fis = new FileInputStream(new File(app.properties))
prop.load(fis);
最佳答案
如果你想要一个更简单的属性文件,你可以这样做:
example.file.folder=file:/Users/XXXX/assets/tables/overage
example.file=${example.file.folder}/test1.xls
example.template.file=${example.file.folder}/test2.xls
example.mapping.file=${example.file.folder}/test3.properties
这样它就更具可读性和可维护性。
关于java - 如何使用 Java 参数在属性文件中构建值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38227046/