繁体   English   中英

将多个Spring配置文件应用于单个Configuration类

[英]Applying multiple Spring profiles to a single Configuration class

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

  • 测试(这是用于单元/集成测试)
  • QA
  • 阶段
  • 生产

上面列表中的最后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包中类的模拟?

您可以在配置类上使用@Profile批注。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM