是否可以仅基于配置文件加载特定的注释?

时间:2020-01-10 07:35:16

标签: spring-boot unit-testing

是否可以仅在测试期间或在Spring Boot中运行期间仅加载特定注释?

我正面临一种情况,即有注释会影响测试,但在实时运行中效果很好,因此想知道是否有可能仅在测试期间排除它们,而在运行时包括它们,就像如何包含基于Spring概要文件的特定bean

很抱歉,如果以前有人问过我,我尝试搜索无济于事

1 个答案:

答案 0 :(得分:0)

您可以使用@ConditionalOnProperty批注,该批注根据设置的属性(在application.properties-> app.val = false中)来创建一个bean。例如服务:

@Service
@ConditionalOnProperty(name = "app.val", havingValue = "false")
public class TestService {
   ...
}

您还可以使用@Profile批注,并将其注释到具有测试配置文件的方法中(例如,在application.properties-> spring.profiles = test中定义)。

@Profile({"test"})
public String getValue() {
    return "test value";
}
@Profile({"production"})
public String getValue() {
    return "production value";
}