2016-08-18 38 views
2

我想知道是否有任何編程方式全部春季配置文件名稱,活動和不活動?如何獲取所有Spring配置文件名稱?

有幾個問題只需要活動配置文件的名稱。我的問題沒有回答這樣的問題,因爲我還需要不活動的配置文件的名稱。

原因:我想在下拉菜單中顯示所有這些配置文件名稱,用戶可以從中選擇要使用的配置文件。

+0

對於誰投下了票,誰能解釋你爲什麼這樣做?我認爲這是一個公平的問題。 – Ahmad

+0

*啓動*配置文件被加載*啓動*。未加載配置文件。另外,您無法在運行時更改活動配置文件。它需要重新啓動應用程序,或者更確切地說是重新裝載彈簧容器,例如,請參閱http://stackoverflow.com/q/28541138/5221149。 – Andreas

+0

這對我來說也是一個公平的問題。我想爲命令行應用程序顯示所有可能的配置文件。不帶任何參數調用該命令將列出所有配置文件。對於下一個命令執行,用戶可以從控制檯輸出中顯示的列表中提供參數。 –

回答

2

有沒有這樣的事情。

當Spring初始化一個ApplicationContext時,它維護活動配置文件,這些配置文件很容易從系統屬性spring.profiles.active中檢索。

當它通過組件註冊相應的bean定義時,它會檢查組件是否匹配某些Condition對象集。其中之一是一個ProfileCondition,這是

Condition該匹配基於一個@Profile註解的值。

例如,如果您有相關@Profile

@Bean 
@Profile("foo-profile") 
public Foo foo() { 
    return new Foo(); 
} 

春天註釋將使用ProfileCondition匹配foo-profile防範主動配置文件的@Bean方法。如果沒有匹配,Spring將跳過這個bean定義。

它從來沒有實際存儲所有可能的@Profile值。

相關問題