Google Guice属性占位符

时间:2014-05-13 11:45:39

标签: java properties guice

我的项目中有一个属性文件,它对同一文件中的其他属性或某些系统或环境变量有内部引用。我如何引用同一属性文件中的那些?

例如:

Test = testexample
foo = ${Test}/${hostname}

此处Test应来自上述属性,hostname来自系统变量。这适用于Spring。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

Guice允许您通过Names.bindProperties注册属性,但不提供加载属性的自有机制,因此不支持此功能。

当您设法使用其他工具读取/替换属性时,您可以注册它们,当然。

当你使用maven时,你可以考虑使用build-helper插件在构建期间替换引用,如果这对你来说已经足够了。

答案 1 :(得分:1)

这在核心Guice中不存在,但实际上可以使用Rocoto Guice extension

来实现

它允许指定占位符并动态扩展它们

my.testFile = testFile.config
my.testDir = /etc
my.testPath = ${my.testDir}/${my.testFile}

它还支持默认值

my.testDir = /etc

#resolves to /etc/default.config
my.testPath = ${my.testDir}/${my.testFile|default.config}