使用多个application.properties

时间:2018-12-09 13:36:50

标签: java spring spring-boot

我想拥有两个application.properties文件:
1. src / main / resources / application.properties
2. src / test / resources / application.properties
但我希望在测试运行期间它将同时使用两个文件。
例如:
在src / main / resources / application.properties中:

a=b
c=d

在src / test / resources / application.properties中:

e=f

在测试运行期间,我将能够使用我从两个文件中列出的所有属性。

@Value("${a}")
private String a;
@Value("${c}")
private String c;
@Value("${e}")
private String e;

有可能吗?
如果不是,什么是我想要做的最佳实践? 谢谢。

2 个答案:

答案 0 :(得分:0)

尝试切换个人资料:

#spring.profiles.active: dev
spring.profiles.active: test

//.yml
spring:
  profiles:
    active: dev
  a: 2
  b: 3
spring:
  profiles:
    active: test
  a: 2
  b: 3

@Component
public class TestProfile {
    @Profile("dev")
    public class devProfile {
    }
    @Profile("test")
    public class testProfile {
    }
}

要进行重新分配/覆盖,请点击此处:

[https://stackoverflow.com/questions/13501675/setting-value-inside-property-file-at-run-time][1]

答案 1 :(得分:0)

已解决:

我必须使用src / test / resources / 应用程序测试 .properties(而不是src / test / resources / 应用程序 .properties),并添加以下注释:

@TestPropertySource("classpath:application-test.properties")