java - 如何使用 Java 参数在属性文件中构建值

标签 java spring

有没有一种方法可以在应用程序 .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/

相关文章:

java - 根据列值更改 JTable 行的背景颜色

java - Spring 4 HTTP 状态 404

java - Apache Tiles 3 JSP 异常

java - 清理和简化文件名的库?

java - 如何在 spring boot 中以编程方式设置 defaultLocale

java - 读取文件并存储到 Hashmap 时,显示数组索引绑定(bind)异常

java - Oracle/J2EE hibernate : ORA-00001: unique constraint violated due to HBM generated sequence

java - @Transactional 的动态事务隔离级别

Java 8 嵌套 for 循环和条件

java - JDialog返回值?