PNS*_*PNS 2 java scala akka typesafe-config hocon
有没有办法动态更改Typesafe 配置文件的字段,使用源代码填充占位符?
例如,假设以下简单配置语句
{
values {
string1: ${name1}
string2: ${name2}
string3: ${name3}
string4: ${name4}
}
}
Run Code Online (Sandbox Code Playgroud)
正如HOCON文档中讨论的以及早期 StackOverflow 问题中提到的,可以使用环境变量和系统属性来实现这一目标。
是否也可以直接从程序中执行相同的操作?例如,在 中Java,有一个Constants类似的类
public class Constants
{
public static final String name1 = "A";
public static final String name2 = "B";
public static final String name3 = "C";
public static final String name4 = "D";
}
Run Code Online (Sandbox Code Playgroud)
并填充该类的配置字段?
HOCON允许Java在配置文件中集成和执行代码,但显然无法从集成Java代码中设置配置占位符。
您可以通过resolve(...)在 的实例上调用已解析占位符的配置来解析占位符Config。
import com.typesafe.config.ConfigFactory;
import com.typesafe.config.Config;
public class ConfigOverrideFromCode {
static public void main(String[] args) {
String config = "system.administrator = ${who-knows}";
Config original = ConfigFactory
.parseString(config)
.resolveWith(ConfigFactory.parseString("who-knows = jon"));
System.out.println(original.getString("system.administrator"));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3795 次 |
| 最近记录: |