2015-09-28 88 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" })