Spring Cloud Config 拉取GitHub读取配置

前言

最近自己想搞一个项目,涉及到了配置文件集中管理这块,所以简单的就把案例分享给大家,因为懒,并没有实现热部署,等项目发展需要后在搞。

文章内容比较简单

正文

我们把配置拿出去集中管理的好处有很多,比如实现配置不会冗余在项目中、众多个服务重复性的配置可以集中在一个文件管理,项目中个性化的项目还可以留在项目中写、项目稳定后这些配置可以交给运维单独管理了。

 

在贴代码之前我们要知道几件事

  • Spring Cloud Config组件是独立的,不需要注册到eureka。
  • config工作原理是把读取目标到配置拉取到本地缓存一份然后供给其他客户端使用,所以一旦config启动成功,可以将git上到配置删除(但是实际情况没人这么干)。
  • 使用cloud 不代表必须用config,用阿波罗也没问题。

 

本文环境

环境
框架 版本
Spring Boot                 2.0.3.RELEASE
Spring Cloud Finchley.RELEASE
JDK

1.8.0_144

 

 

Demo

 

项目中父pom


        UTF-8
        UTF-8
        1.8
        Finchley.RELEASE
    

    
        user-service
        config
    

    
        
            yanlin
            [email protected]
        
    

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.3.RELEASE
        
    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
    

 

config服务

config服务需要添加依赖

 
        
            org.springframework.cloud
            spring-cloud-config-server
        
    

 

在config服务添加application.yml文件

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/doctor-of-personal-animals/dopa-config.git
          #username:
          #password:
          search-paths:
  application:
    name: sc-config-git
server:
    port: 9090

如果在上面的github地址下还有一个层目录的话search-paths 参数就是那个文件夹。有密码和用户名就填写。

 

 

当然我们还要在github添加我们到文件

Spring Cloud Config 拉取GitHub读取配置_第1张图片

 

在我们config启动类加上注解,表明是一个配置服务


@EnableConfigServer

 

config客户端

 

客户端的pom



        
            org.springframework.cloud
            spring-cloud-config-client
        
    

 

创建bootstrap.yml 文件

 

spring:
    cloud:
        config:
            label: master
            uri: http://localhost:9090
            name: config-info
            profile: dev

 

创建application.yml 文件

 

server:
  port: 9091

spring:
  application:
    name: user-service

 

这里的两个配置文件中bootstrap 加载顺序在application 之前。

 

到这里 springcloud Config访问github配置文件最简单的配置就完成了,下面我们在 config客户端写一个接口测试一下

@RestController
public class UserController {
    @Value("${spring.cloud}")
    private String config;

    @GetMapping("/test/config")
    public String test() {
        return config;
    }
}

 

先启动 config服务,在启动 config客户端,访问http://localhost:9091/test/config

 

Spring Cloud Config 拉取GitHub读取配置_第2张图片

 

 

 

 

 

 

你可能感兴趣的:(springCloud)