【问题标题】:Applying multiple Spring profiles to a single Configuration class将多个 Spring 配置文件应用于单个 Configuration 类
【发布时间】:2015-09-28 22:22:57
【问题描述】:

我的应用程序有 4 个可能的 Spring 配置文件

  • TEST(用于单元/集成测试)
  • 质量保证
  • 舞台
  • 生产

上面列表中的最后 3 个是运行此应用程序的实际环境。

这是我的名为 AppConfig 的配置类的概述

@Configuration
@ComponentScan(basePackages={"org.mycompany.services","org.mycompany.domain", "org.mycompany.utils"})
public class AppContext {

}

这是我的问题: 我希望 AppContext 的配置仅适用于 QA、STAGE 和 PRODUCTION 配置文件(但不适用于 TEST 配置文件)。最好的方法是什么?

原因是上面的配置类从 org.mycompany.services 中扫描和挑选类。但我不希望为 TEST 配置文件选择此包,因为我打算使用 Mockito 模拟此包中的类。

另一个可能的问题是,我是否需要重新考虑进行单元/集成测试的方式,以便简化对 org.mycompany.service 包中的类的模拟?

【问题讨论】:

    标签: java spring testing integration-testing spring-profiles


    【解决方案1】:

    你可以在配置类上使用@Profile注解。

    要为除TEST 之外的任何配置文件启用该类,只需像@Profile("!TEST") 一样使用它。

    或者您可以像这样显式指定配置文件:@Profile({ "QA", "STAGE", "PRODUCTION" })

    【讨论】:

    • 如何使用@profile注解指定OR/AND条件
    猜你喜欢
    • 2020-05-31
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多