(此次創建的Demo小案例都是基於springBoot【2.0.0.M3】,springCloud【Finchley.M2】創建的,讀者若是爲了演示正常,請務必保持版本一致)
下面講解統一配置中心客戶端的的簡單使用
上一節【SpringCloud 之 統一配置中心 Config Server 的簡單使用】我們講解了server的使用,如何通過配置中心將我們的配置從git庫上拉取下來,這一節我們講解通過client將從git上拉取下來的配置應用到具體的模塊中
好,下面我們先理清楚一下思路:
首先是必須有我們的註冊中心eureka,關於如何創建請詳細看【SpringCloud 之 Eureka註冊中心的創建】;
然後就是我們的config Server,關於如何創建請詳細看【SpringCloud 之 統一配置中心 Config Server 的簡單使用】;
最後是我們調用的客戶端 config client,其實就是相當於我們實際開發中的一個微服務模塊,這裏我們當作訂單模塊來處理。
下面我們再來簡單回顧一下Eureka 的客戶端創建的過程,並結合config client來創建這個Demo
1.創建項目,注意紅框選中部分
2.依舊是我們去修改版本
3.因爲我們演示的版本比較舊,所以這裏下載相關依賴jar 的時候下載不下來,所以需要手動配置一下下載鏡像
在我們的pom文件中添加如下spring的鏡像配置
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
4.啓動類添加註解【@EnableDiscoveryClient】
5.配置文件中做如下配置:
spring:
application:
name: order
cloud:
config:
discovery:
enabled: true
service-id: CONFIG
profile: dev
server:
port: 8090
eureka:
client:
service.url:
defaultZone: http://localhost:8761/eureka/
下面簡單說一下,因爲我們讀取的配置文件名字叫做【order-dev.yml】,所以spring.application.name對應【order】;屬性【profile】對應【dev】;然後就是spring.cloud.config.discovery.service-id對應的是註冊在Eureka上的config Server的名字
這裏需要特殊說明一點:就是我們的註冊地址【spring.eureka.client.service.url.defaultZone】一定要寫在我們這個config的客戶端,因爲當我們註冊中心的地址端口對應的不是8761的時候(可能是8762),寫在我們的git庫配置文件中,啓動項目會報錯,會找不到我麼的配置,原因是啓動項目會先去找我們的註冊中心eureka,找到之後纔會在我們的【CONFIG】中找對應的配置,就是一個順序的問題;
還有就是我們的配置文件名字最好是改成【bootstrap.yml】,因爲我們真實的項目中,項目啓動會讀取數據庫配置,找不到會報錯,當我們改爲bootstrap之後便會優先加載我們當前的配置文件,不再報錯
6.啓動Eureka項目
可以看到我們的【order】模塊和【config】都已經註冊成功
7. 現在驗證一下我們order模塊是否可以真正獲取到對應配置的內容,我們在config 的客戶端新建一個測試類,也就是我們的【order】模塊
@RestController
@RequestMapping("/test")
public class TestController {
@Value("${env}")
private String env;
@Value("${lable}")
private String lable;
@GetMapping("/getEnv")
public String getEnv(){
return "env:"+env+",lable:"+lable;
}
}
重啓項目訪問http://localhost:8090/test/getEnv
訪問我們config server項目讀取配置 http://localhost:8080/order-dev.yml
可以看到我們order模塊讀取的配置和config server項目呈現出來的配置完全一致,成功讀取到了配置中心的內容