弹簧引导如何从自定义 YML 加载属性



我有一个属性 bean(示例(:

@Data
public class MyProperty {
private String name;
private String address;
}

我在类路径中有一个名为的自定义 yml 文件:my_property.yml

my.property:
name: testName
address: testAddress

如何将此文件加载到我的属性 bean? 不使用@PropertyResource,因为我想使用 yml 文件。 谢谢。

@PropertySource是包含外部/自定义属性的方法,但不幸的是,由于此问题,它不适用于 yaml 文件。

您需要通过简单地编写EnvironmentPostProcessor并将其添加到META-INF/spring.factories来自行加载这些yaml文件。

这在下面的 Spring 文档中进行了描述(版本之间略有不同(。
弹簧启动 1.5.x 弹簧启动 2.x

您可以查看两个属性 -

  1. spring.config.name - 如果您不喜欢应用程序作为文件名 例如-

    java -Dspring.config.name = my_property myjar.jar
    
  2. spring.config.location - 告诉文件所在的位置

更多信息在这里有据可查

春季文档

关注: http://www.baeldung.com/spring-yaml

application.yml文件的相对路径为/myApplication/src/main/resources/application.yml

访问是:

@Autowired
private YAMLConfig myConfig;

我把我的application.properties文件放在src/main/resources/结束我的@SpringBootApplication阅读。

应用程序属性文件

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=***
spring.datasource.username=***
spring.datasource.password=***

最新更新