如何使用apache通用配置加载多个配置文件(java)

时间:2011-02-25 08:57:13

标签: java xml apache-commons apache-commons-config

我有一个主要的conf文件,我使用apache通用配置类加载。 我有一个要求,用户可以在其中指定conf文件,这些文件中的值将覆盖main conf中的值。

请建议我们如何在apache常用配置类或任何其他开源类中实现此目的。

提前致谢

3 个答案:

答案 0 :(得分:13)

我认为你想要类似于the mechanism described here的东西:

CompositeConfiguration config = new CompositeConfiguration();
config.addConfiguration(new PropertiesConfiguration("user.properties"));
config.addConfiguration(
    new PropertiesConfiguration("application.properties"));
// user preferences have precedence over application preferences

<强>参考:

答案 1 :(得分:0)

使用cfg4j

// Specify which files to load. Configuration from both files will be merged.
ConfigFilesProvider configFilesProvider = () -> Arrays.asList(new File("application.properties"), new File("otherConfig.properties"));

// Use local files as configuration store
ConfigurationSource source = new FilesConfigurationSource(configFilesProvider);

然后以标准方式使用它来获取属性。

答案 2 :(得分:0)

PropertiesConfiguration具有方法copy(Configuration c),该方法将指定配置的内容复制到该配置中。如果指定的配置包含此配置中也存在的键,则该键的值将被新值替换。