【问题标题】:How to override spring's import annotation如何覆盖spring的导入注解
【发布时间】:2018-01-02 03:18:26
【问题描述】:

我有一个 Spring Boot 应用程序。在使用@SpringBootApplication 注解的主类中,我已经使用import 注解导入了一些配置。

@SpringBootApplication
@Import({ MyConfiguration.class })
public class MySpringBootApp {

    public static void main(String[] args) {
        new SpringApplicationBuilder(MySpringBootApp.class).build().run(args);
    }
}

现在,当我运行带有“@RunWith(SpringRunner.class)”注释的 junit 测试类时,它会加载应用程序,并且主类中导入的配置类也被加载(即 MyConfiguration)。

@RunWith(SpringRunner.class)
public class MyTest {
....
}

有没有办法覆盖导入,以便在运行测试时不加载 MyConfiguration。

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    我了解您需要使用 SpringRunner,但您想使用不同的配置。在这种情况下,您只需使用 @ContextConfiguration(classes = SomeConfigurationClass.class) 注释您的 Test 类

    所以它看起来像这样:

    @RunWith(SpringRunner.class)
    @ContextConfiguration(classes = SomeConfigurationClass.class)
    public class MyTest {
    ....
    }
    

    如果您不需要任何 Spring Container,只需删除 @RunWith(...)

    【讨论】:

      猜你喜欢
      • 2015-11-18
      • 2016-01-26
      • 2014-10-26
      • 2017-02-18
      • 2012-05-19
      • 2011-03-02
      • 2011-03-14
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多