java - 如何从 testContext.xml 中的组件扫描中排除 @Configuration 类

标签 java spring

我有一个用 @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"

  1. 在app.properties中spring.profiles.active=development
  2. prodDataSource 将不会被调用。但是 devDataSource 将被调用

For profile called "production"

  1. 在app.properties中spring.profiles.active=product
  2. prodDataSource 将不会被调用。但是 devDataSource 将被调用

关于java - 如何从 testContext.xml 中的组件扫描中排除 @Configuration 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44134764/

相关文章:

java - 未调用自定义 AccessDeniedHandler

java - Spring JMX - 导出键值对映射

java - Java 摄氏度到华氏度

java - Selenium Java 代码打印 google 搜索的前五个结果

java - 元素类型 "property"的内容必须匹配

java - 解析@Transactional时内存使用率高

java - Delphi XE5 - Android - 在服务器窗口中保存文件(共享文件夹)

java - Netty:在messageReceived中获取远程IP地址

java - 从另一个 Maven 项目加载消息属性

spring - 使用 Spring Data MongoDB 查询纯 BSON