Spring Cloud Config的Server服務端,連接遠端倉庫併成功提供了配置服務端點。Config Server服務端可以從後端存儲中(上圖爲Git)拉取配置參數、屬性,然後對外提供獲取相應環境(dev開發、stage預發佈、prod生產)配置的Restful服務。
一.在遠端gitee碼雲上創建一個倉庫
1.登錄碼雲的網站,註冊一個賬號,然後進行登錄,在頭像的“+”號處,創建倉庫
2.進入倉庫創建頁面,填寫必須字段,進行倉庫的創建:
然後我們的倉庫案例就創建成功了:
二.安裝git:https://git-scm.com/downloads, 安裝完成後,查看是否安裝成功:
三.clone遠程倉庫項目:
1.在D盤下新建一個mayun-gitee文件夾,進入mayun-gitee文件夾下,右鍵:選擇“git GUI here”使用git的圖形化界面:
3.選擇上面的克隆已有倉庫的選項,然後填寫前面我們複製的倉庫地址:https://gitee.com/jurf-liu/spring-cloud-config-demo.git
4.點擊“Clone”後,遠程倉庫的文件就被拉進來了,人工不干預,自己一路狂奔到如下圖的頁面:
5.在D:\mayun-gitee\spring-cloud-config-demo文件夾下,新建application-dev.yml、application-pre.yml、application-prod.yml這3個配置文件:
6.在3個配置文件分別配置內容:
application-dev.yml文件中的內容:
server:
port: 8009-1
spring:
application:
name: ms-config-server-dev
application-pre.yml文件中的內容:
server:
port: 8009-2
spring:
application:
name: ms-config-server-pre
application-prod.yml文件中的內容:
server:
port: 8009-2
spring:
application:
name: ms-config-server-pre
7.點擊“Rescan”刷新倉庫,檢測出有變動的文件:
8.將未跟蹤的文件提交到stage區域:
9.將stage區域跟蹤的文件提交到本地倉庫:
10.點擊push,將本地倉庫信息提交到遠程倉庫,並按提示輸入相關的賬號
11.輸入密碼和用戶名:如果輸入錯誤,後續一直提示輸入錯誤的信息,解決辦法爲:https://blog.csdn.net/qq_26878363/article/details/83146567
12.查看遠程倉庫gitee:
四.新建config server服務:
1.pom文件:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2.編寫啓動類:
package com.ljf.weifuwu.springcloud.config.server;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
/**
* Hello world!
*
*/
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApp
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
3.配置application配置文件:配置文件的uri修改爲我們新建的gitee倉庫,注:原地址後面的“.git”可以不要。
server:
port: 8009
spring:
application:
name: ms-config-server
cloud:
config:
server:
git:
uri: https://gitee.com/jurf-liu/spring-cloud-config-demo.git
4.直接啓動Config Server微服務,來準備訪問我們的遠端配置,使用Config Server微服務訪問遠端配置文件,可以直接通過RESTful風格的URL形式訪問
Spring Cloud提供了以下幾種方式:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
上面的{label}爲標籤 ,{application}爲應用標識,{profile}爲
1.dev的訪問結果:http://localhost:8009/application-dev.yml
2.pre的訪問結果:http://localhost:8009/application-pre.yml
3.prod的訪問結果:http://localhost:8009/application-prod.yml
5.其他訪問情況
1.如果有多個分支,可以在文件前面加載分支的標籤,如我們的文件在master分支上,就是:
http://localhost:8009/master/application-prod.yml
不加分支默認訪問master分支。
2.abc-dev.yml根本就不存在,如果我們去訪問http://localhost:8009/master/abc-dev.yml,他會以http://localhost:8009/master/application-dev.yml的文件進行顯示,即將application替代不存在的abc
3.如果我們訪問根本就不存在的文件,application-222.yml文件,它會提示空json串。
我們可以提供一個當一個文件不存在,以默認文件顯示,好的,現在創建一個默認文件application文件:
參考第二部提交步驟,將此文件提交到遠程倉庫中。
最後進行訪問:我們再訪問不存在的版本配置,就會指向默認配置文件: