Spring Cloud Config 拉取GitHub读取配置

前言

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

文章内容比较简单

正文

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

 

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

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

 

本文环境

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

1.8.0_144

 

 

Demo

 

项目中父pom

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>

    <modules>
        <module>user-service</module>
        <module>config</module>
    </modules>

    <developers>
        <developer>
            <name>yanlin</name>
            <email>362460453@qq.com</email>
        </developer>
    </developers>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/>
    </parent>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

 

config服务

config服务需要添加依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
    </dependencies>

 

在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添加我们到文件

 

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


@EnableConfigServer

 

config客户端

 

客户端的pom

<dependencies>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>
    </dependencies>

 

创建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

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值