从标准 Properties 对象创建一个 commons config Configuration 对象

create a commons config Configuration object from standard Properties object

我正在从 YAML 文件加载设置,并让 Spring 将结果自动装配到 Properties bean 中,如下所示:

@ConfigurationProperties(prefix = "myPrefix")
@Bean
private Properties getProperties() {
    return new Properties();
}

然而,Properties class 相当有限,我想要一个 Apache commons config Configuration 对象。公共配置文档说它可以与 Spring 集成,但我没有看到这个简单用例的示例。

如何在 Spring 引导中自动装配 apache commons Configuration

我认为没有任何现成的解决方案来获取 Apache Commons 配置对象。但是,您可以获得 Spring 的 Environment object, which implements PropertyResolver,它比 Properties 高级得多(您可以检索任何 class 类型的属性)。您可以像这样在应用程序的构造函数中自动装配它:

...
private final Environment env;
@Autowired
public MyApplication(Environment env) {
    this.environment = env;
}
...