有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

主要

@Configuration
public class DynamoConfiguration {

测试

@TestConfiguration
public class DynamoTestConfiguration {

单元测试

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

然而,当我只想加载DynamoTestConfiguration时,它仍然在加载DynamoConfiguration并导致失败。我怎样才能确保这一切发生


共 (1) 个答案

  1. # 1 楼答案

    使用@SpringBootTest时,应用程序将与类路径上的任何@Configuration类一起启动。Spring不知道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