我有一个用 @Configuration 注释的 AppConfig 类,它具有各种 bean 定义,其中包括从应用程序执行第三方命中的 bean。现在在我的 spring 集成测试用例中,我不希望初始化这些 bean。在那里我创建了另一个名为 TestAppConfig 的 bean,并用 @Configuration 进行了注释,其中我模拟了所有执行第三方命中的 bean。现在,在我的 testContext.xml 中,我向 context:component-scan 添加了一个排除过滤器,其中我指定要排除的 AppConfig 包。但不知何故,这个 AppConfig 每次都会被初始化。我已经尝试过正确的正则表达式,但仍然无法正常工作。如果有人知道原因请分享。
最佳答案
After see the comment that you are using spring 3.2, you can see here for older version of spring to use @Profile
您可以使用@Profile注释来确定将创建或不创建哪个@Bean。
示例:
定义的Bean如下
@Bean
@Profile("production")
public DataSource prodDataSource() {
...
return dataSource;
}
@Bean
@Profile("development")
public DataSource devDataSource() {
...
return dataSource;
}
For profile called "development"
- 在app.properties中
spring.profiles.active=development
prodDataSource
将不会被调用。但是devDataSource
将被调用
For profile called "production"
- 在app.properties中
spring.profiles.active=product
prodDataSource
将不会被调用。但是devDataSource
将被调用
关于java - 如何从 testContext.xml 中的组件扫描中排除 @Configuration 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44134764/