2015-09-28 41 views
1

我有我的应用程序4个可能的春天型材应用多个弹簧的配置文件到一个配置类

  • TEST(这是单位/集成测试)
  • QA
  • STAGE
  • 生产

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

这里是我的配置类的所谓的AppConfig

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

} 

这里是我的问题概述: 我想被应用AppContext的配置,以QA,舞台和生产型材只(而不是测试配置文件)。什么是最好的方式来做到这一点?

原因是上述配置类扫描&从org.mycompany.services中挑选类。但我不希望这个包被TEST配置文件拾取,因为我打算使用Mockito来模拟这个包中的类。

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

回答

2

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

要启用除TEST之外的任何配置文件的类,请使用它,如@Profile("!TEST")

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