一、Config簡(jiǎn)介
??SpringCloud Config提供服務(wù)器端和客戶端。服務(wù)器存儲(chǔ)后端的默認(rèn)實(shí)現(xiàn)使用git,因此它輕松支持標(biāo)簽版本的配置環(huán)境,以及可以訪問(wèn)用于管理內(nèi)容的各種工具。
??這個(gè)是靜態(tài)的,得配合Spring Cloud Bus實(shí)現(xiàn)動(dòng)態(tài)的配置更新。
二、Maven依賴
<!-- 系統(tǒng)配置管理中心服務(wù)端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
三、application.properties配置(Spring Cloud Config服務(wù)端)
# 配置中心端口號(hào)
server.port=8888
#注冊(cè)中心
eureka.register.port=8761
eureka.register.host=localhost
# 配置中心實(shí)例的主機(jī)名
spring.application.name=config-server
# 顯示IP
eureka.instance.preferIpAddress=true
eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
# 注冊(cè)中心地址
eureka.client.serviceUrl.defaultZone=http://${eureka.register.host}:${eureka.register.port}/eureka/
# 啟用本地配置
spring.profiles.active=native
# 配置文件路徑
spring.cloud.config.server.native.search-locations=classpath:/config-repo
默認(rèn)情況下,Spring Cloud Config Server將配置數(shù)據(jù)存儲(chǔ)在Git存儲(chǔ)庫(kù)中。
這在生產(chǎn)模式下是非常好的選擇,但對(duì)于開發(fā)模式文件系統(tǒng)就足夠了。我們可以將所有屬性放在類路徑中。Spring Cloud Config默認(rèn)搜索以下位置內(nèi)的屬性源:classpath:/, classpath:/config, file:./, file:./config。
我們將所有的配置放在src/main/resources/config目錄。YAML文件名一定要與服務(wù)名稱相同。例如,發(fā)現(xiàn)服務(wù)的YAML文件將位于此處:src/main/resources/config/discovery-service.yml。
如果您想使用文件系統(tǒng),啟動(dòng)配置服務(wù)器,則可以激活Spring Boot配置本地文件。可以通過(guò)–spring.profiles.active=native在應(yīng)用程序引導(dǎo)期間設(shè)置參數(shù)來(lái)實(shí)現(xiàn)。
我還通過(guò)在文件中設(shè)置屬性將默認(rèn)配置服務(wù)器端口(8888)更改為8061。
四、啟動(dòng)類添加注解
在啟動(dòng)類加上@EnableConfigServer注解
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication
{
public static void main( String[] args )
{
SpringApplication.run(ConfigApplication.class, args);
}
}
五、application.properties配置(Spring Cloud Config客戶端)
- Maven依賴
<!--配置文件客戶端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
- 配置bootstrap.properties
#讀取配置中心信息
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.name=user-service
spring.cloud.config.profile=${config.profile:dev}