2014-07-21 30 views
4

在春季啓動中處理應用程序配置的建議方法是什麼?例如,我想要從文件(在覆蓋鏈中)加載一些內容,例如數據庫連接詳細信息。我還想從數據庫本身加載其他內容(如運行時可更改的應用程序設置),還有一些我希望允許用戶以編程方式更改的內容。處理彈簧啓動應用程序/外部配置的推薦方式?

我猜我在這裏真的有兩種不同的使用情況,我只是需要將它們分開處理,並使用類似http://commons.apache.org/proper/commons-configuration/的方式處理彈簧配置的一種方式和應用配置,但我想確保我不會丟失一些春天(或開機)的做事方式。

我通常會在論壇或郵件列表上詢問這個問題,但我知道我們現在應該使用stackoverflow,所以請讓我知道是否有更好的場地來處理這類問題。

+0

聽起來像建議是主要在春天以外做我自己的事情......是對的嗎? –

回答

0

我通常定義2級配置的:

  • 使用@Value("${configurationKey:defaultValue}")默認值;
  • 應用程序個性化配置使用@PropertySource("${configurationLocation:classpath:}/my-application.properties");

通過這種方式,應用程序具有默認值,並且如果在上找不到配置鍵,則不會拋出任何異常。此外,-DconfigurationLocation=file:///properties/files/(針對這種情況)可以定義爲一個個性化的路徑,其中my-application.properties文件可以從新的部署中加載並覆蓋默認配置值。

對於存儲在數據庫中的配置,我會像你指出的那樣去尋找另一種方法,如commons-configuration

0

Spring Boot提供了一些可供選擇的選項,它可以爲您提供一些您正在尋找的覆蓋鏈(使用配置文件)。我寫了一個關於其中一些的blog piece。如果你想分佈式配置管理,你可能想探索Spring Cloud這看起來很有前途,但我還沒有嘗試過。

相關問題