spring boot 1.5.9.RELEASE
spring cloud Dalston.SR1
1.前言
spring cloud config 配置中心是什么?
為了統一管理配置信息,比如數據庫的賬戶密碼等信息 ,將一個服務器注冊為配置中心,其他服務可以從配置中心獲取配置文件信息 。
2.新建 配置中心端
(1)新建一個端口為100的 maven子工程, 作為 配置中心
引入依賴

完整pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.atguigu.springcloud</groupId> <!-- 父級maven模塊的工程名字--> <artifactId>microservicecloud</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>com.example</groupId> <artifactId>demo-my-cen-myconfig</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo-my-cen-myconfig</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <!-- actuator監控 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- <!– zuul路由網關 –>--> <!-- <dependency>--> <!-- <groupId>org.springframework.cloud</groupId>--> <!-- <artifactId>spring-cloud-starter-zuul</artifactId>--> <!-- </dependency>--> <!-- springCloud Config --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <!-- 熱部署插件 --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
(2)看一下目錄結構

(3)application.properties配置信息,名稱設為 config-service ,名字隨意

當前演示獲取本地文件,在resources 文件夾新建一個 properties 文件 ,我這設為 configText.properties ,隨便加一些信息用於測試
完整源碼
# 服務端口 server.port=100 # 這個是指定服務名稱 spring.application.name=config-service #注冊中心地址 eureka.client.serviceUrl.defaultZone=http://localhost:7001/eureka/ #本地配置文件,默認獲取在resources路徑下的文件 spring.profiles.active=native #配置的Git倉庫的地址 #spring.cloud.config.server.git.uri=https://github.com/xuwujing/springcloud-study/ #git倉庫地址下的相對地址 多個用逗號","分割。 #spring.cloud.config.server.git.search-paths = /springcloud-config/config-repo #git倉庫的賬戶 #spring.cloud.config.server.git.username = #git倉庫的密碼 #spring.cloud.config.server.git.password =

如果需要獲取git倉庫的文件,則需要把
spring.profiles.active=native
注釋掉 ,換成被注釋的git配置內容 ,
完整源碼
//todo
(4)啟動類配置 ,任何啟動

(5)測試 , 瀏覽器輸入 http://localhost:100/configText-1.properties ,可以看到可以訪問配置信息

注:配置文件的名稱是configText.properties,但是如果直接該名稱的話是獲取不到的,因為在配置文件名需要通過-來進行獲取,如果配置文件名稱沒有-,那么添加了-之后,會自動進行匹配搜索。
下面的url會映射{application}-{profile}.properties對應的配置文件,{label}對應git上不同的分支,默認為master。

3.新建 服務消費者端
(1)新建一個端口為200的 maven子工程, 作為 服務消費者端 ,用於獲取配置中心文件
也需要引入配置中心依賴才可以

完整pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.atguigu.springcloud</groupId> <!-- 父級maven模塊的工程名字--> <artifactId>microservicecloud</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>com.example</groupId> <artifactId>demo-my-cen-myconfig-client</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo-my-cen-myconfig-client</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <!-- 配置中心依賴包--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
(2)目錄結構

(3)配置 application.properties

(4)新建一個 bootstrap.properties 文件 ,spring boot啟動 bootstrap.properties 文件 優先於 application.properties 文件讀取配置,因此注冊信息需要在bootstrap文件設置

完整信息
#獲取配置文件到名稱 spring.cloud.config.name=configText #獲取配置的策略 spring.cloud.config.profile=pro #獲取配置文件的分支,默認是master。如果是是本地獲取的話,則無用, spring.cloud.config.label=master #開啟配置信息發現 spring.cloud.config.discovery.enabled=true #指定配置中心的service-id,便於擴展為高可用配置集群,不區分大小寫 spring.cloud.config.discovery.serviceId=config-service #這個是設置與Eureka Server交互的地址,客戶端的查詢服務和注冊服務都需要依賴這個地址。 eureka.client.serviceUrl.defaultZone=http://localhost:7001/eureka/
(5)配置 controller 接口, 用於驗證 能否讀取配置中心的文件 ,name 就是配置中文本地文件 configText.properties 的參數 ,直接調用即可

(6)啟動類配置 ,使用發現服務注解即可

4.測試
還需要提前 准備 一個端口為7001的服務注冊中心,【這里就不展示了,可以看我的其他隨筆有詳細操作解說】
然后由消費者端 200 訪問 接口,調用端口為100的配置中心 ,

瀏覽器 輸入 http://localhost:200/getConfig?name=愛你喲 ,

獲取成功 ,撒花
--------------------------
參考博文原址 : https://blog.csdn.net/qazwsxpcm/article/details/88578076
