您好,登錄后才能下訂單哦!
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實現本地配置的方法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。