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