Java TypesafeConfig生成配置键并读取其值

Java TypesafeConfig生成配置键并读取其值,java,typesafe-config,Java,Typesafe Config,我正在我的项目中使用Typesafeconfig。我想读取配置并生成一个值,这也是一个配置键,我想读取这个配置键的值 例如: fs { city = ${CITY} number = ${NUMBER} cityNumberKey = ${CITY}"_"${NUMBER} cityNumber = ${fs.cityNumberKey} } 在上面的示例中,cityNumber的值与cityNumberKey的值相同。我实际上要做的是读取cityNumberKey confi

我正在我的项目中使用Typesafeconfig。我想读取配置并生成一个值,这也是一个配置键,我想读取这个配置键的值

例如:

fs {
  city = ${CITY}
  number = ${NUMBER}
  cityNumberKey = ${CITY}"_"${NUMBER}
  cityNumber = ${fs.cityNumberKey}
}
在上面的示例中,cityNumber的值与cityNumberKey的值相同。我实际上要做的是读取cityNumberKey config的值

例如,假设
城市
德里
数字
31
,那么我想在
城市编号
对象中读取config
德里
的值

请欣赏任何类似的例子

谢谢

您可以使用

reference.conf

fs {
    city = "Delhi"
    number = 31
}
conf {
    city = ${fs.city}
    number = ${fs.number}
    cityNumberKey = ${conf.city}"_"${conf.number}
    cityNumber = ${conf.cityNumberKey}
}
myconf.conf

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"));
    }
}
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"));
    }
}
编辑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 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"));
    }
}
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"));
    }
}

我试着用一种配置,但不知怎么的,它对我根本不起作用。我尝试了你分享的方式,效果很好。如果它是为,你能请样品吗?