微服務中如何獲取配置文件以及多環境切換配置

Java 文章 Java虛擬機 技術 小裁縫先生 小裁縫先生 2017-08-25

首先,給大家說聲抱歉,因為這個週末又是搬家,帶寶寶跟親戚家小孩去海底世界玩,把更新給耽誤了,希望大家諒解。

微服務中如何獲取配置文件以及多環境切換配置


在微服務的開發中,會涉及到zookeeper,kafka,configserver,zuul,eureka等各種各樣的組件,每個組件都會有自己對應的配置,在這篇個文章中主要講講如何在springboot中獲取配置以及在多環境下切換配置文件。

首先只需要兩步你就可以做到,

第一步,在application.properties(yml)中配置你需要的屬性;

第二步,在需要使用到配置文件的類中定義相應的變量,並用@Value註解去獲取配置的值。

在之前涉及到修改端口的文章中,我們通過在配置文件中配置server.port來配置端口號。現在我們就寫一個簡單的例子,獲取配置的端口號:

微服務中如何獲取配置文件以及多環境切換配置

微服務中如何獲取配置文件以及多環境切換配置

在上面一段代碼中,我們定義了一個用@Value標註的port變量,通過瀏覽器訪問可以看到如下結果:

微服務中如何獲取配置文件以及多環境切換配置

通過上面的小例子,給大家介紹瞭如何讀取配置文件。但是在實際開發的過程中,我們涉及到的配置文件會非常的多,而且我們還要應對開發環境,測試環境,生產環境。如果這時候我們只是在一個配置文件中修改,配錯參數是常有的事情,這時候profile就派上了用場。

我們可以理解profile是我們在Spring容器中定義的Bean的邏輯組名稱,只有某一個Profile被激活,它對應的Bean才會被加載。如果沒有設置,spring就會激活默認的,這點可以從Springboot的啟動日誌可以看出。

微服務中如何獲取配置文件以及多環境切換配置

接著,我們用一個例子來說明Profile的使用。我們在之前配置文件中,再加上一個類似的配置,區別只是修改了程序的端口號,並給每個配置都加上spring.profiles屬性。另外,我們激活其中一個。

微服務中如何獲取配置文件以及多環境切換配置

在按照上圖的配置之後,我們從啟動日誌中看到,程序採用了topline-2的配置,端口也變成了8089:

微服務中如何獲取配置文件以及多環境切換配置

微服務中如何獲取配置文件以及多環境切換配置

上面我們使用了在配置文件中配置profile的方法。除了這個方法,還有其他方法可以完成配置。

在web.xml中配置,作為DispatcherServlet的初始化參數以及作為web應用的上下文參數(Springboot中不適用

JVM配置(這種適用於以jar包的形式運行springboot程序)

java -jar -Dspring.profiles.active=topline-2 topline-springboot-mongo-0.0.1-SNAPSHOT.jar

如果是測試,可以使用@ActiveProfiles("topline-2")。

最後,希望大家多多提意見,謝謝閱讀。

相關推薦

推薦中...