如何在Spring启动应用程序中排除使用@component加载注释的特定组件?

时间:2017-03-15 09:32:12

标签: spring-boot

我有一个spring boot应用程序,其中一个组件连接到db。我希望避免在测试运行期间加载它。

我正在使用下面的模板进行测试。是否也可以从主springboot类(MyApp.class)中排除特定组件的加载?

@RunWith(SpringJUnit4ClassRunner.class)  
@SpringApplicationConfiguration(MyApp.class) 
public class MyTest { 
   // ...Hitting some rest endpoint to extract data 
} 

提前致谢!

1 个答案:

答案 0 :(得分:1)

假设您正在使用JUnit:

@Component
@ConditionalOnMissingClass({"org.junit.Test"})
public class SomeComponent {
}

或者,如果为名为test的测试激活Spring配置文件:

@Component
@Profile("!test")
public class SomeComponent {
}

注意,后者是Spring而不是spring-boot解决方案