在Spring Boot 1.4中定义与配置文件相关的YAML属性

时间:2016-08-30 16:28:34

标签: spring-boot

在Spring Boot 1.4应用程序的YAML中定义属性时,我必须使用main / resources / application.yaml文件。到目前为止,非常好。

在运行或测试应用程序时,如何使用YAML覆盖这些依赖项,具体取决于特定的配置文件。

1 个答案:

答案 0 :(得分:0)

使用Spring Boot 1.4时(这也适用于1.3版),YAML属性始终在main / resources / application.yaml文件中定义。根据所选的配置文件,属性可以被另一组属性覆盖。

要覆盖这些测试属性,必须在/test/resources/application-.yaml文件中提供YAML文件,该文件由活动配置文件替换。重要的是要看到始终必须给出配置文件,即使没有活动配置文件也是如此。在这种情况下,配置文件是“默认”。

要在运行应用程序时覆盖属性,可以在名为main / resources / application-.yaml文件的文件中使用特定配置文件覆盖属性。即使在这种情况下,如果没有给出配置文件,文件名的配置文件也是“默认”。

实施例

Example of YAML file structure for Spring Boot

Spring Boot 1.4的测试类Spring14ApplicationTests.java具有以下定义

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
public class Spring14ApplicationTests {
   …
}

对于Spring Boot 1.3,同一文件具有以下定义

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=SpringDb14Application.class)
@WebAppConfiguration
public class SpringDb14ApplicationTests {
    ...
}