Java 如何使用组合配置覆盖默认配置?

Java 如何使用组合配置覆盖默认配置?,java,apache-commons-config,Java,Apache Commons Config,将配置添加到(从Apache Commons配置2)时,如何指定一种配置覆盖另一种配置 例如,假设我有一个默认配置和一个用户配置。如果我希望用户覆盖默认设置,如何设置组合配置 XMLConfiguration defaultConfig = ...; XMLConfiguration userConfig = ...; CombinedConfiguration config = new CombinedConfiguration(); config.addConfiguration(defa

将配置添加到(从Apache Commons配置2)时,如何指定一种配置覆盖另一种配置

例如,假设我有一个默认配置和一个用户配置。如果我希望用户覆盖默认设置,如何设置组合配置

XMLConfiguration defaultConfig = ...;
XMLConfiguration userConfig = ...;

CombinedConfiguration config = new CombinedConfiguration();
config.addConfiguration(defaultConfig);
config.addConfiguration(userConfig);

它取决于传递给
组合配置
类的构造函数的
节点组合器。例如,如果使用了
OverrideCombiner
,则添加到配置中的第一项将优先于其他节点。如果调用
CombinedConfiguration
的默认构造函数,将使用
UnionCombiner


这取决于传递给
组合配置
类的构造函数的
节点组合器。例如,如果使用了
OverrideCombiner
,则添加到配置中的第一项将优先于其他节点。如果调用
CombinedConfiguration
的默认构造函数,将使用
UnionCombiner


解决方案是使用,配置需要从最高优先级添加到最低优先级

CombinedConfiguration config = new CombinedConfiguration(new OverrideCombiner());
config.addConfiguration(userConfig);
config.addConfiguration(defaultConfig);

解决方案是使用,配置需要从最高优先级添加到最低优先级

CombinedConfiguration config = new CombinedConfiguration(new OverrideCombiner());
config.addConfiguration(userConfig);
config.addConfiguration(defaultConfig);