java - Java TypesafeConfig 生成配置键并读取其值
问题描述
我在我的项目中使用 Typesafeconfig。我想读取配置并生成一个值,这又是一个配置键,我想读取这个配置键的值。
例子:
fs {
city = ${CITY}
number = ${NUMBER}
cityNumberKey = ${CITY}"_"${NUMBER}
cityNumber = ${fs.cityNumberKey}
}
在上面的例子中,cityNumber 的值与 cityNumberKey 相同。我实际上想要做的是读取 cityNumberKey 配置的值。
例如,假设 if city
isDelhi
和Number
is 31
,那么我想读取对象中 configDelhi_31
的值。cityNumber
欣赏任何相同的例子。
谢谢
解决方案
您可以使用,
参考资料
fs {
city = "Delhi"
number = 31
}
我的配置文件
conf {
city = ${fs.city}
number = ${fs.number}
cityNumberKey = ${conf.city}"_"${conf.number}
cityNumber = ${conf.cityNumberKey}
}
TypesafeConfigTest.java
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
public class TypesafeConfigTest {
public static void main(String[] args) {
Config refConfig = ConfigFactory.parseResources("reference.conf").resolve();
Config myConfConfig = ConfigFactory.parseResources("myconf.conf").withFallback(refConfig).resolve();
System.out.println("name: " + refConfig.getString("fs.city"));
System.out.println("title: " + refConfig.getString("fs.number"));
System.out.println("cityNumberKey: " + myConfConfig.getString("conf.cityNumberKey"));
System.out.println("cityNumber: " + myConfConfig.getString("conf.cityNumber"));
}
}
编辑1:
使用单一配置,
conf {
city = "Delhi"
number = 31
cityNumberKey = ${conf.city}"_"${conf.number}
cityNumber = ${conf.cityNumberKey}
}
TypesafeConfigExamples.java
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
public class TypesafeConfigExamples {
public static void main(String[] args) {
Config refConfig = ConfigFactory.parseResources("myconf.conf").resolve();
System.out.println("name: " + refConfig.getString("conf.city"));
System.out.println("title: " + refConfig.getString("conf.number"));
System.out.println("cityNumberKey: " + refConfig.getString("conf.cityNumberKey"));
System.out.println("cityNumber: " + refConfig.getString("conf.cityNumber"));
}
}
推荐阅读
- r - 当公式由字符串给出时如何运行回归?
- r - 如果我有四组 100 个项目,R 中有没有办法随机选择其中的 10 个,以使某个变量的分布最均匀?
- java - Android Firebase上传图片不起作用
- intellij-idea - IntelliJ 运行 websphere 未显示最新更改
- c++ - 在 C++ 中使用 2D 数组作为游戏地图
- python - 将字典的值转换为向量
- frama-c - 如何在 Frama-C 中证明整数是有限的
- javascript - 未捕获的类型错误:无法在“元素”上执行“setAttribute”:需要 2 个参数,但只有 0 个存在
- c# - NLog 停止从 app.config 读取我的配置
- c - 使用 clang-tidy 将函数名称转换为蛇形大小写