您好,登錄后才能下訂單哦!
springCloud config實(shí)現(xiàn)本地配置的方法?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
配置config-server服務(wù)端
使用start.spring.io創(chuàng)建一個(gè)springcloud工程,pom中引入:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
啟動(dòng)類加上@EnableConfigServer注解:
@SpringBootApplication @EnableConfigServer public class ConfigApplication { public static void main(String[] args) { SpringApplication.run(ConfigApplication.class, args); } }
在resources文件夾下創(chuàng)建properties文件夾,在properties文件夾下創(chuàng)建config-dev.properties文件存放配置信息。
修改配置文件application.properties:
#項(xiàng)目啟動(dòng)端口 server.port=8888 #配置文件在本地 spring.profiles.active=native #配置文件地址 spring.cloud.config.server.native.search-locations=classpath:properties
關(guān)于配置文件的命名請(qǐng)參考這里,配置文件的名稱和路徑會(huì)分別代表不同的配置名稱和配置激活屬性:
/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties
啟動(dòng)項(xiàng)目并打開(kāi)配置:http://localhost:8888/config/dev
配置屬性
看到上面的信息則說(shuō)明配置成功,這里我配置了一個(gè)項(xiàng)目的端口號(hào):server.port,后面會(huì)用到。
配置 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配置文件名字對(duì)應(yīng)的。
啟動(dòng)項(xiàng)目:我們可以看到配置的端口號(hào)8001生效了:
這里有個(gè)小坑我記一下,springcloud config讀取git配置文件的時(shí)候,properties文件會(huì)出現(xiàn)中文亂碼的情況,所有我使用的是yml文件,不會(huì)出現(xiàn)亂碼的問(wèn)題。網(wǎng)上搜了一下,有人說(shuō)是spring加載Properties文件的 load方法輸入流的編碼是 ISO 8859-1。所以我避免麻煩使用yml文件。
git配置方法:
server:
port: 8888
spring:
cloud:
config:
server:
git:
username: xxx
password: xxx
補(bǔ)充知識(shí):spring cloud config 本地配置和遠(yuǎn)程GIT部署 公共配置獲取
引言
在我們開(kāi)發(fā)spring boot微服務(wù)框架時(shí),經(jīng)常會(huì)用到各種各樣的配置,而這些配置在我們沒(méi)有采用整體項(xiàng)目管理或者產(chǎn)品管理下,顯得很混亂,尤其是一些公共的配置,加上我們微服務(wù)模塊化,比如說(shuō)要修改一個(gè)庫(kù)配置,或許要修改到各個(gè)模塊去整體調(diào)配,增加工作量的同時(shí),對(duì)工作完全是一無(wú)是處的.
為此,對(duì)服務(wù)配置文件進(jìn)行整體管理是必不可少的.然 ---spring cloud config在微服務(wù)架構(gòu)下,應(yīng)用而生,當(dāng)然它的作用不止是這個(gè)大.
官網(wǎng): https://cloud.spring.io/spring-cloud-config/
部署
服務(wù)端
1.既然是服務(wù)型的框架,那么它必然會(huì)有一個(gè)Server和一個(gè)Client來(lái)實(shí)現(xiàn)簡(jiǎn)單的示例.和其他springboot或者cloud的一樣,我們既然要在項(xiàng)目中應(yīng)用它,必是要導(dǎo)入或者引入包.官網(wǎng)明確給出了maven和gradle的配置語(yǔ)句.目前我在網(wǎng)上看的很多示例都加入了一些他們自己項(xiàng)目的東西,比如說(shuō)eureka或者是amqp-消息配置或者一些負(fù)載均衡的包或者是配置可熱加載的包.這些信息涉及到更深的技術(shù),之后慢慢理解,我們?cè)谶@就只做cloud config的實(shí)現(xiàn).
新建Server項(xiàng)目==>maven配置刷包==>編輯Applaction加注解;
@EnableDiscoveryClient @EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
2.Server工程的配置可以是yml或者properties,自己按照自己的喜好.我這里用了yml;配置有標(biāo)注,
2.1. 遠(yuǎn)程GIT配置方法
server:
port: 7001 #Server端口,client訪問(wèn)端口 端口默認(rèn)8888
spring:
cloud:
config:
server:
git:
uri: https://*****/*******/****.git #遠(yuǎn)程git倉(cāng)庫(kù)
username: ########### #賬戶
password: ******** #密碼
search-paths: properties #搜索目錄
application:
name: config-server #名稱
2.2. 本地配置方法
server:
port: 7001 #Server端口,client訪問(wèn)端口 端口默認(rèn)8888
spring:
profiles:
active: native #告訴服務(wù),我現(xiàn)在要啟用本地配置(優(yōu)先考慮采用工程目錄resources下配置)
application:
name: config-server #名稱
cloud:
config:
server:
native:
search-locations: E:/Document/cloud_config/properties/ #明確采用該目錄下配置
3.養(yǎng)成看看原代碼的習(xí)慣,大部分看不懂邏輯,沒(méi)有切入點(diǎn),哈哈!不過(guò)還是能看出來(lái)點(diǎn)端倪.
3.一個(gè)configServer搞完,現(xiàn)在把它運(yùn)行起來(lái),似乎發(fā)現(xiàn)了它的運(yùn)行原理.通過(guò)日志看代碼.
不難看除,原代碼原來(lái)是這個(gè)樣子,入口有了,更加方便查看源代碼的原理.看方法入?yún)?似乎我們客戶端需要提供者幾個(gè)字段的配置.name profiles label...
客戶端
1.和服務(wù)端方式相同,接下來(lái)客戶端依舊是導(dǎo)包,加注解.接下來(lái)客戶端的配置需要在bootstrap.yml的配置.
spring:
application:
name: system-core #名稱
cloud:
config:
uri: http://localhost:7001 #server服務(wù)
name: system-core,datasource,reids #尋找配置文件(,)隔開(kāi)是多個(gè)配置文件
profile: core
enabled: true #默認(rèn)即時(shí)true,還是加上吧
1.1 我這里配置比較簡(jiǎn)單,只要Server requestmapping認(rèn)識(shí)就行,當(dāng)然不同的配置對(duì)不同的項(xiàng)目使用更便利,自行研究吧,官網(wǎng)有一些配置的樣例,大家可以看看.網(wǎng)上的一些例子可能久遠(yuǎn),包含沒(méi)有所有,也可以看原代碼的類.來(lái)查看怎么配置,如何去查找配置文件的.
EnvironmentController
1.2 怎么讓一個(gè)項(xiàng)目訪問(wèn)幾個(gè)或者公共配置,這里我們只要將spring.cloud.config.name字段屬性配置用逗號(hào)隔開(kāi)寫不同的文件名即可,也是其他很多博客說(shuō)是用spring.application.name,這種方法是錯(cuò)誤的,不要采用.還有一種方法是我們什么也不做,只要在配置文件目錄加一個(gè)application.properties的文件,既可以每個(gè)微服務(wù)都默認(rèn)訪問(wèn).
2.我們?cè)賮?lái)看看原代碼,了解一些配置和邏輯,這個(gè)配置就不會(huì)迷茫,也不會(huì)出現(xiàn)冗余的配置.
3.運(yùn)行起來(lái).
遠(yuǎn)程配置讀起來(lái).
本地配置讀起來(lái).
看完上述內(nèi)容,你們掌握springCloud config實(shí)現(xiàn)本地配置的方法的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。