簡體   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