是否可以仅在测试期间或在Spring Boot中运行期间仅加载特定注释?
我正面临一种情况,即有注释会影响测试,但在实时运行中效果很好,因此想知道是否有可能仅在测试期间排除它们,而在运行时包括它们,就像如何包含基于Spring概要文件的特定bean
很抱歉,如果以前有人问过我,我尝试搜索无济于事
答案 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";
}