spring-core 中的 YAML 配置

YAML configuration in spring-core

有没有办法在没有 spring 引导的情况下使用 YAML 配置。从文档中可以清楚地看出这可能是不可能的,但专家可能有其他意见。

是的,有办法。您需要使用能够处理 reading/parsing yaml 文件的 YamlPropertiesFactoryBean

您需要对类路径的依赖:

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.20</version>
</dependency>

接下来您可以从 yaml 文件加载属性并将它们注入到 PropertySourcesPlaceholderConfigurer 使用 YamlPropertiesFactoryBeangetObject() 方法,其中 returns java.util.Properties

的实例
@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
  PropertySourcesPlaceholderConfigurer propertyConfigurer = new PropertySourcesPlaceholderConfigurer();
  YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
  yaml.setResources(new ClassPathResource("application.yml"));
  propertyConfigurer.setProperties(yaml.getObject());
  return propertyConfigurer;
}

然后您可以使用 @Value 从 yaml 文件中注入属性,例如。