创建configclient工程,从configserver读取配置文件

读取配置流程

创建工程

略

添加依赖

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.2.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <!-- config-server依赖 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <!-- springboot依赖,不写版本号表示继承父工程 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- springboot依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

创建 bootstrap 配置文件

  • bootstrap.yml :先加载
  • application.yml :后加载

详见:springboot application.yml与bootstrap.yml的区别

启动时,先加载 bootstrap.yml 配置文件,根据配置,向 server config 发请求,读取到配置后,再继续启动服务,如:连接数据库等操作

创建 bootstrap.yml 或 bootstrap.properties 都可以,效果相同

bootstrap.yml

server:
  port: 7020

spring:
  application:
    name: testconfig

  cloud:
    config:
      # 配置服务器地址
      uri: http://localhost:7101/
      # git的文件名
      name: ums
      # 环境,dev 开发环境配置文件 |  test 测试环境  |  pro 正式环境
      profile: dev
      #仓库的分支
      label: master

bootstrap.properties

server.port=7020

spring.application.name=testconfig
# 配置服务地址
spring.cloud.config.uri= http://localhost:7101/
# git的文件名
spring.cloud.config.name=ums
# 仓库的分支
spring.cloud.config.label=master
# 环境,dev 开发环境配置文件 |  test 测试环境  |  pro 正式环境
spring.cloud.config.profile=dev

创建主启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main {

    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }

}

创建 controller

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestCtrl {
    @Value("${data.db.username}")
    String username;

    @Value("${data.db.password}")
    String password;

    @RequestMapping("/test")
    public String test(){
        return username + "——" + password;
    }
}

启动服务

启动服务,看到下面信息:

Fetching config from server at : http://localhost:7101/

Located environment: name=ums, profiles=[dev], label=master, version=98e04022c4ea2ae523527f7b06949fefa9020e0d, state=null

说明 向 server config 发请求,请求配置文件

测试:访问controller

访问连接:http://localhost:7020/test ,显示如下:

root——123456

说明读取配置文件成功