2

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

4

1 回答 1

2

是的,有办法。您需要使用YamlPropertiesFactoryBean哪个能够读取/解析 yaml 文件。

您需要对类路径的这种依赖:

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

接下来,您可以从 yaml 文件中加载属性并将它们注入到 a PropertySourcesPlaceholderConfigurerusinggetObject()方法中,该方法YamlPropertiesFactoryBean返回一个实例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;
}

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

于 2018-04-02T11:32:41.893 回答