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
使用 YamlPropertiesFactoryBean
的 getObject()
方法,其中 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 文件中注入属性,例如。
有没有办法在没有 spring 引导的情况下使用 YAML 配置。从文档中可以清楚地看出这可能是不可能的,但专家可能有其他意见。
是的,有办法。您需要使用能够处理 reading/parsing yaml 文件的 YamlPropertiesFactoryBean
。
您需要对类路径的依赖:
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.20</version>
</dependency>
接下来您可以从 yaml 文件加载属性并将它们注入到
PropertySourcesPlaceholderConfigurer
使用 YamlPropertiesFactoryBean
的 getObject()
方法,其中 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 文件中注入属性,例如。