1

Commons Configuration 2.0 已经发布。在 Commons Configuration 1.0 中,有一个 Spring 模块工厂 bean (org.springmodules.commons.configuration.CommonsConfigurationFactoryBean),它允许通过 Spring 的 PropertyPlaceholderConfigurer 直接使用 Commons Configuration。由于不再维护,问题是如何使用 Commons Configuration 2.0 执行此操作。

当然,应该可以将现有的 Spring 模块源代码复制到项目中并迁移到 2.0。我知道 Spring 提供了 YAML,但它应该仍然是 Commons Configuration(现有的 XML 配置文件不应该受到影响)。

4

1 回答 1

2

我为 Commons Configuration 贡献了一个 PropertySource,它是 >=2.1 版本的一部分:org.apache.commons.configuration2.spring.ConfigurationPropertySource

例如在扩展的 PropertySourcesPlaceholderConfigurer 中使用它:

public class ApacheCommonsConfigPlaceholderConfigurer extends PropertySourcesPlaceholderConfigurer {

   public ApacheCommonsConfigPlaceholderConfigurer(Configuration configuration) {
     ConfigurationPropertySource apacheCommonsConfigPropertySource =
        new ConfigurationPropertySource(configuration.getClass().getName(), configuration);
     MutablePropertySources propertySources = new MutablePropertySources();
     propertySources.addLast(apacheCommonsConfigPropertySource);
     setPropertySources(propertySources);
   }
}

如果解决了这个问题,代码会更简单:https ://jira.spring.io/browse/SPR-9631

另请参阅: http: //mail-archives.apache.org/mod_mbox/commons-user/201604.mbox/%3C44F558D5-0A26-4711-9658-39BD9052D751@capitalone.com%3E

于 2016-04-19T12:23:54.273 回答