? Spring Boot 依賴與配置
Maven 依賴
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
.....
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
</dependencies>
? 使用說明
1、部署 Consul
- 參考文檔:Docker 部署 Consul
2扳剿、在 resources
路徑下添加配置文件 bootstrap.properties
暮胧,示例如下:
# consul 基本配置
spring.cloud.consul.host=127.0.0.1
spring.cloud.consul.port=8500
# 啟用 consul 配置中心
spring.cloud.consul.config.enabled=true
# 基礎(chǔ)文件夾题禀,默認(rèn)值 config
spring.cloud.consul.config.prefix=config
# 應(yīng)用文件夾,默認(rèn)值 application筒主,consul 會加載 config/<applicationName> 和 config/<defaultContext> 兩份配置,設(shè)置為相同值鸟蟹,則只加載一份
spring.cloud.consul.config.default-context=testApp
spring.application.name=testApp
# 環(huán)境分隔符乌妙,默認(rèn)值 ","
spring.cloud.consul.config.profile-separator=-
# 配置轉(zhuǎn)碼方式,默認(rèn) key-value建钥,其他可選:yaml/files/properties
spring.cloud.consul.config.format=properties
# 配置 key 值藤韵,value 對應(yīng)整個配置文件
spring.cloud.consul.config.data-key=data
# 啟用配置自動刷新
spring.cloud.consul.config.watch.enabled=true
# 【疑問】請求 consul api 的延遲,單位:秒
spring.cloud.consul.config.watch.wait-time=1
# 刷新頻率熊经,單位:毫秒
spring.cloud.consul.config.watch.delay=10000
3泽艘、在 Consul Key/Value 中添加應(yīng)用配置
配置項 spring.cloud.consul.config.prefix
指定了基本文件夾為 config
,需要先創(chuàng)建文件夾 config
:
Tips:新建分兩種類型:文件夾镐依、Key/Value匹涮,創(chuàng)建文件夾只需在后面加上 "/" 即可
配置項 spring.cloud.consul.config.default-context
和 spring.cloud.consul.config.profile-separator
指定了應(yīng)用名和環(huán)境分隔符,例如應(yīng)用 testApp
有環(huán)境 default
槐壳、dev
然低、prod
,只需在 config
目錄下創(chuàng)建 testApp
务唐、testApp-dev
雳攘、testApp-prod
三個文件夾即可:
配置項 spring.cloud.consul.config.format
指定了 Value 的轉(zhuǎn)化方式,依據(jù)個人喜好枫笛,可以配置為 yaml
或 properties
吨灭,若選擇這兩種方式,需要配置 spring.cloud.consul.config.data-key
刑巧,默認(rèn)為 data
喧兄,示例配置:
Tips:如需單獨配置每個 Key/Value无畔,
spring.cloud.consul.config.format
和spring.cloud.consul.config.data-key
均不用設(shè)置
4、配置刷新
spring.cloud.consul.config.watch.delay
設(shè)置了配置的刷新間隔繁莹,在 Consul 修改了配置檩互,會動態(tài)同步到應(yīng)用內(nèi)部。