springCloud config本地配置操作
一般很多專案不是在springcloud的環境中使用的,但是需要用到分散式配置中心來管理一些外部或者專案的配置,這個時候我們可以使用springcloud-config的本地配置。
配置config-server服務端
使用start.spring.io建立一個springcloud工程,pom中引入:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
啟動類加上@EnableConfigServer註解:
@SpringBootApplication @EnableConfigServer public class ConfigApplication { public static void main(String[] args) { SpringApplication.run(ConfigApplication.class,args); } }
在resources資料夾下建立properties資料夾,在properties資料夾下建立config-dev.properties檔案存放配置資訊。
修改配置檔案application.properties:
#專案啟動埠 server.port=8888 #配置檔案在本地 spring.profiles.active=native #配置檔案地址 spring.cloud.config.server.native.search-locations=classpath:properties
關於配置檔案的命名請參考這裡,配置檔案的名稱和路徑會分別代表不同的配置名稱和配置啟用屬性:
/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties
啟動專案並開啟配置:http://localhost:8888/config/dev
配置屬性
看到上面的資訊則說明配置成功,這裡我配置了一個專案的埠號:server.port,後面會用到。
配置 config-client客戶端
新建springboot工程,pom檔案中加入:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
在resources檔案下加入配置檔案bootstrap.properties,配置使用config-server的配置:
spring.cloud.config.name=config spring.cloud.config.profile=dev spring.cloud.config.uri=http://localhost:8888
在這裡我們可以看到spring.cloud.config.name和spring.cloud.config.profile是和config-server中的config-dev.properties配置檔名字對應的。
啟動專案:我們可以看到配置的埠號8001生效了:
這裡有個小坑我記一下,springcloud config讀取git配置檔案的時候,properties檔案會出現中文亂碼的情況,所有我使用的是yml檔案,不會出現亂碼的問題。網上搜了一下,有人說是spring載入Properties檔案的 load方法輸入流的編碼是 ISO 8859-1。所以我避免麻煩使用yml檔案。
git配置方法:
server:
port: 8888
spring:
cloud:
config:
server:
git:
username: xxx
password: xxx
補充知識:spring cloud config 本地配置和遠端GIT部署 公共配置獲取
引言
在我們開發spring boot微服務框架時,經常會用到各種各樣的配置,而這些配置在我們沒有采用整體專案管理或者產品管理下,顯得很混亂,尤其是一些公共的配置,加上我們微服務模組化,比如說要修改一個庫配置,或許要修改到各個模組去整體調配,增加工作量的同時,對工作完全是一無是處的.
為此,對服務配置檔案進行整體管理是必不可少的.然 ---spring cloud config在微服務架構下,應用而生,當然它的作用不止是這個大.
官網: https://cloud.spring.io/spring-cloud-config/
部署
服務端
1.既然是服務型的框架,那麼它必然會有一個Server和一個Client來實現簡單的示例.和其他springboot或者cloud的一樣,我們既然要在專案中應用它,必是要匯入或者引入包.官網明確給出了maven和gradle的配置語句.目前我在網上看的很多示例都加入了一些他們自己專案的東西,比如說eureka或者是amqp-訊息配置或者一些負載均衡的包或者是配置可熱載入的包.這些資訊涉及到更深的技術,之後慢慢理解,我們在這就只做cloud config的實現.
新建Server專案==>maven配置刷包==>編輯Applaction加註解;
@EnableDiscoveryClient @EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class,args); } }
2.Server工程的配置可以是yml或者properties,自己按照自己的喜好.我這裡用了yml;配置有標註,
2.1. 遠端GIT配置方法
server:
port: 7001 #Server埠,client訪問埠 埠預設8888
spring:
cloud:
config:
server:
git:
uri: https://*****/*******/****.git #遠端git倉庫
username: ########### #賬戶
password: ******** #密碼
search-paths: properties #搜尋目錄
application:
name: config-server #名稱
2.2. 本地配置方法
server:
port: 7001 #Server埠,client訪問埠 埠預設8888
spring:
profiles:
active: native #告訴服務,我現在要啟用本地配置(優先考慮採用工程目錄resources下配置)
application:
name: config-server #名稱
cloud:
config:
server:
native:
search-locations: E:/Document/cloud_config/properties/ #明確採用該目錄下配置
3.養成看看原始碼的習慣,大部分看不懂邏輯,沒有切入點,哈哈!不過還是能看出來點端倪.
3.一個configServer搞完,現在把它執行起來,似乎發現了它的執行原理.通過日誌看程式碼.
不難看除,原始碼原來是這個樣子,入口有了,更加方便檢視原始碼的原理.看方法入參,似乎我們客戶端需要提供者幾個欄位的配置.name profiles label...
客戶端
1.和服務端方式相同,接下來客戶端依舊是導包,加註解.接下來客戶端的配置需要在bootstrap.yml的配置.
spring:
application:
name: system-core #名稱
cloud:
config:
uri: http://localhost:7001 #server服務
name: system-core,datasource,reids #尋找配置檔案(,)隔開是多個配置檔案
profile: core
enabled: true #預設即時true,還是加上吧
1.1 我這裡配置比較簡單,只要Server requestmapping認識就行,當然不同的配置對不同的專案使用更便利,自行研究吧,官網有一些配置的樣例,大家可以看看.網上的一些例子可能久遠,包含沒有所有,也可以看原始碼的類.來檢視怎麼配置,如何去查詢配置檔案的.
EnvironmentController
1.2 怎麼讓一個專案訪問幾個或者公共配置,這裡我們只要將spring.cloud.config.name欄位屬性配置用逗號隔開寫不同的檔名即可,也是其他很多部落格說是用spring.application.name,這種方法是錯誤的,不要採用.還有一種方法是我們什麼也不做,只要在配置檔案目錄加一個application.properties的檔案,既可以每個微服務都預設訪問.
2.我們再來看看原始碼,瞭解一些配置和邏輯,這個配置就不會迷茫,也不會出現冗餘的配置.
3.執行起來.
遠端配置讀起來.
本地配置讀起來.
以上這篇springCloud config本地配置操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。