springboot如何从自定义yml加载属性

时间:2018-05-30 02:49:57

标签: java spring spring-mvc spring-boot

我有一个属性bean(例子):

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

我在类路径中有一个名为my_property.yml

的自定义yml文件
my.property:
  name: testName
  address: testAddress

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

3 个答案:

答案 0 :(得分:0)

您可以查看两个属性 -

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

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

  3. 此处详细记录了更多信息

    spring documentation

答案 1 :(得分:0)

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

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

并且访问权限为:

@Autowired
private YAMLConfig myConfig;

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

application.properties文件

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

答案 2 :(得分:0)

@PropertySource是包括外部/自定义属性的方法,但不幸的是,由于this issue,该方法不适用于yaml文件。

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

这在下面的Spring文档中有所描述(版本之间的细微差别)。
Spring boot 1.5.x
Spring boot 2.x