spring cloud --- config 配置中心 [本地、git獲取配置文件]


 

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>

<!--        &lt;!&ndash; zuul路由網關 &ndash;&gt;-->
<!--        <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>
View Code

 

(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 =
View Code

 

 

如果需要獲取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>
View Code

(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/
View Code

 

 (5)配置 controller 接口, 用於驗證 能否讀取配置中心的文件 ,name 就是配置中文本地文件 configText.properties 的參數  ,直接調用即可

 

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

 

 4.測試

 還需要提前 准備 一個端口為7001的服務注冊中心,【這里就不展示了,可以看我的其他隨筆有詳細操作解說】

然后由消費者端 200 訪問 接口,調用端口為100的配置中心 ,

 

 

 

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

 

 

 獲取成功 ,撒花








--------------------------

參考博文原址 : https://blog.csdn.net/qazwsxpcm/article/details/88578076










免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM