我的 application.yaml 具有以下条目:
spring:
profiles:
active: test
include: h2, test
key:
enabled: on
我有以下三个 bean 定义,并且想在我的测试中加载 TestConfig bean。但在测试中需要NoConfig Bean:
@ConditionalOnProperty(name = "key.enabled", matchIfMissing = true)
@Profile("test")
public class TestConfig {}
@ConditionalOnMissingBean(Config.class)
public class NoConfig {}
@ConditionalOnProperty(name = "key.enabled", matchIfMissing = true)
@Profile("!test")
public class Config{}
我还检查了测试中的活动配置文件,它确实是测试配置文件。
@Value("${spring.profiles.active:Unknown}")
private String activeProfile;
NoConfig
时,您所拥有的Bean
Config
总是会被创建。您可以尝试使用@TestConfiguration
来定义特定测试所需的bean,或者您可以编写一个BeanFactoryPostProcessor
来从初始化中排除不必要的bean