如何覆盖spring的import注释

时间:2017-07-26 16:51:39

标签: spring-boot

我有一个春季启动应用程序。在使用@SpringBootApplication注释的主类中,我使用导入注释导入了一些配置。

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

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

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

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

是否有办法覆盖导入,因此在运行测试时不会加载MyConfiguration。

1 个答案:

答案 0 :(得分:1)

我知道你需要使用SpringRunner,但是你想使用不同的配置。在这种情况下,您只需使用@ContextConfiguration(classes = SomeConfigurationClass.class)

注释您的Test类

所以它看起来像这样:

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

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

即可