[英]Recommended way to handle spring-boot application/external config?
在spring boot中處理應用程序配置的推薦方法是什么? 例如,我有一些我想從文件(在覆蓋鏈中)加載的東西,比如數據庫連接細節。 我還想從我的數據庫本身加載其他東西(比如運行時可更改的應用程序設置),還有其他我希望允許用戶以編程方式進行更改的內容。
我猜這里我真正擁有的是兩個不同的用例,我只需要將它們視為單獨處理,並使用http://commons.apache.org/proper/commons-configuration/之類的方式處理彈簧配置單向和應用程序配置但我想確保我沒有錯過一些彈簧(或開機)的做事方式。
我通常會在論壇或郵件列表上問這個,但我知道我們現在應該使用stackoverflow,所以請告訴我是否有更好的地方可以解決這類問題。
我通常定義2級配置:
@Value("${configurationKey:defaultValue}")
默認值@Value("${configurationKey:defaultValue}")
; @PropertySource("${configurationLocation:classpath:}/my-application.properties")
應用程序個性化配置@PropertySource("${configurationLocation:classpath:}/my-application.properties")
; 這樣,應用程序具有默認值,並且如果在PropertyResolver
找不到配置鍵,則不會拋出任何異常。 另外-DconfigurationLocation=file:///properties/files/
(對於這種情況)可以定義一個個性化路徑,其中可以加載my-application.properties
文件並覆蓋默認配置值而無需新部署。
對於存儲在數據庫中的配置,我會采用另一種方法,如您指向的commons-configuration
。
有很多選項可供選擇,Spring Boot為您提供了一些很好的選項,可以為您提供所需的覆蓋鏈(使用Profiles)。 我寫了一篇關於其中一些的博客文章 。 如果你想要分布式配置管理,你可能想要探索看起來非常有前景的Spring Cloud ,但我還沒有嘗試過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.