随着服务的扩展,配置文件也越来越多,这时候就需要一个集中修改配置文件的地方来管理配置文件

在自己的git上新建个项目用来测试

Springcloud如何使用本地配置文件_github


https://github.com/chill-zx/springcloud-config.git 新建三个yml文件用于测试:


在本地创建一个文件夹用于存放clone下来的yml文件


新建module:

添加pom

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>com.zx.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

编写yml

server:
  port: 3344
spring:
  application:
    name: cloud-config-center
  cloud:
    config:
      server:
        git:
          uri:  https://github.com/chill-zx/springcloud-config.git #填写你自己的github路径
          search-paths:
            - springcloud-config
      label: master
eureka:
  client:
    service-url:
      defaultZone:  http://localhost:7001/eureka

编写主启动类

Springcloud如何使用本地配置文件_git_02


修改hosts文件

Springcloud如何使用本地配置文件_github_03


在dev的环境添加信息用于测试并上传git:

Springcloud如何使用本地配置文件_github_04


启动服务并访问:

Springcloud如何使用本地配置文件_git_05

可以看到是能够读取到的

Springcloud如何使用本地配置文件_spring_06


config分为服务端和客服端,测试的3344就是服务端

Springcloud如何使用本地配置文件_git_07


新建一个客户端3355:

Springcloud如何使用本地配置文件_git_08


添加pom依赖

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>com.zx.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

config的客户端用的是bootstrap.yml
application.yml是用户级的系统资源
bootstrap.yml是系统级的,优先级更高
配置bootstrap.yml

server:
  port: 3355

spring:
  application:
    name: config-client
  cloud:
    config:
      label: master
      name: config
      profile: dev
      uri: http://localhost:3344
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka

编写主启动类:

Springcloud如何使用本地配置文件_git_09


编写controller并读取配置:

Springcloud如何使用本地配置文件_spring_10


启动访问:能看到已经读取到了信息

Springcloud如何使用本地配置文件_git_11


动态刷新配置:

修改一下版本,把1.0改为2.0

Springcloud如何使用本地配置文件_spring_12


可以看到已经更改为了2.0

Springcloud如何使用本地配置文件_git_13


访问服务端:版本号改变了

Springcloud如何使用本地配置文件_github_14

再访问3355客户端发现没有改变,还是1.0

Springcloud如何使用本地配置文件_spring_15


1 要实现动态加载首先需要添加监控的依赖

Springcloud如何使用本地配置文件_git_16


2 修改yml,暴露监控的端口

Springcloud如何使用本地配置文件_spring_17

在controller类添加一个刷新的注解

Springcloud如何使用本地配置文件_github_18


再从新访问就是2.0,说明动态配置设置成功了

Springcloud如何使用本地配置文件_git_19


配置过后动态访问还是不能够成功,所以需要”激活一下“

Springcloud如何使用本地配置文件_git_20


Springcloud如何使用本地配置文件_spring_21


再访问:

Springcloud如何使用本地配置文件_git_22