working-dir="file:${user.home}/some-directory"
.properties ファイル内で次のようなことができますか? user.home
ResourceBundle を使用して .properties ファイルから構成をロードしていますが、自分のプロパティなどのシステム プロパティ キーを継承したいと考えていworking-dir
ます。ソース パッケージとテスト パッケージのリソース ディレクトリに異なるバージョンの .properties をそれぞれ持つことができるので、これができると便利です。working-dir
本番環境とテスト環境で異なる値を定義したいと考えています。
質問する
1638 次
2 に答える
1
これを直接行うことはできませんが、コード内のプロパティを解析し、プログラムで変数を展開できます。
${varname}
プロパティでパターンを検索するvarname
システム プロパティからの値を取得する${varname}
システムプロパティの値に置き換えますvarname
上記の簡単な実装を次に示します。
String property = "file:${user.home}/some-directory";
StringBuffer sb = new StringBuffer();
Pattern pattern = Pattern.compile("\\$\\{(.+)\\}");
Matcher matcher = pattern.matcher(property);
while (matcher.find())
{
String key = matcher.group(1);
String val = System.getProperty(key);
if (val != null)
{
matcher.appendReplacement(sb, Matcher.quoteReplacement(val));
}
}
matcher.appendTail(sb);
System.out.println(sb.toString());
于 2010-10-20T08:25:56.530 に答える
0
Apacheコモンズ構成の変数補間を試したところ、完璧に機能します。
于 2010-10-20T10:43:45.240 に答える