springboot加载错误的配置,尽管是显式的

t5zmwmid  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(344)

我有以下配置类,一个在主包中,一个在测试包中。

主要

@Configuration
public class DynamoConfiguration {

试验

@TestConfiguration
public class DynamoTestConfiguration {

单元测试

@ActiveProfiles(profiles = "test")
@ContextConfiguration(classes = {DynamoTestConfiguration.class})
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@SpringBootTest
public class DynamoClientTest {

然而,它仍在加载 DynamoConfiguration 当我只想 DynamoTestConfiguration 待加载。我怎样才能确保发生这种情况?

fxnxkyjh

fxnxkyjh1#

使用时 @SpringBootTest ,然后启动应用程序,以及 @Configuration 类路径上的类。斯普林不知道 DynamoConfiguration 是特殊的,你不想加载它。
为此,您可以使用配置文件:

@Profile("prod")
@Configuration
public class DynamoConfiguration {

在你的测试中,加上 !prod 给你的 @ActiveProfiles :

@ActiveProfiles(profiles = "!prod,test")
@ContextConfiguration(classes = {DynamoTestConfiguration.class})
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@SpringBootTest
public class DynamoClientTest {

这应该可以避免 DynamoConfiguration 在测试中加载。

相关问题