在咱们日常开发中,对于一些信息的配置加载一般都不会在代码中写死,而是通过一些配置动态加载。对于springcloud来说就是通过config来获取配置中心的配置信息来实现的。那么怎么实现一个配置中心?

一、配置中心地址

选择一个配置中心地址,我这里选的得是github,新建一个项目,简单配置即可。

咱们一般开发都分三个环境:开发、测试、和线上环境。新建三个文件将相应配置添加就可以了。

文件内容就随便了,比如我的:

二、服务端

有了配置地址后就该获取配置信息了。新建一个maven项目,作为config服务端,负责从配置地址读取相应配置(这里配置地址为自己的github),建好之后导入向管依赖。

需要的依赖:

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

依赖添加完成后,创建一个启动类,启动类上需要添加一个注解: @EnableConfigServer

在resources文件里面,新建一个bootstrap.yml文件

bootstrap.yml填写配置信息

spring:application:name: config-servercloud:config:server:git:uri: https://github.com/LISHENGDRUNK/config-repo-demo.git#配置git仓库地址    search-paths: config-repo #git仓库地址下的相对地址,可以配置多个,用,分割。
server:port: 12000

配置信息讲解:

Spring boot config也提供本地存储配置的方式,我们只需要设置属性spring.profiel.active=native,config server会默认从应用的src/main/resource目录下检索配置文件,也可以通过spring.cloud.config.server.native.searchLocations=file:E:/properties属性来指定配置文件的位置。虽然spring cloud config提供了这样的功能,但是为了支持更好的管理内容和版本控制,还是推荐使用github的方式。

启动类

启动类添加@EnableConfigServer,激活对配置中心的支持

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {public static void main(String[] args) {SpringApplication.run(ConfigServerApplication.class, args);}
}

到此 Server 端相关配置已经完成。


测试

首先我们先要测试 Server 端是否可以读取到 github 上面的配置信息,直接访问 http://localhost:12000/config-client/dev 返回信息如下:

{"name": "config-client","profiles": ["dev"],"label": null,"version": "4e3ca4b9e2bb96c9a0ba012f6c6e0b6cadc48f3e","state": null,"propertySources": [{"name": "https://github.com/LISHENGDRUNK/config-repo-demo.git","source": {"info.profile": "dev-update"}}]
}

上述的返回的信息包含了配置文件的位置、版本、配置文件的名称以及配置文件中的具体内容,说明 Server 端已经成功获取了 Git 仓库的配置信息。

如果直接查看配置文件中的配置信息可访问 http://localhost:12000/config-client-dev.yml 返回:\

neo:  holle: dev-update

四、客户端
     修改配置文件config-client-dev.yml中配置信息为:dev holle, 再次在浏览器访问 http://localhost:12000/config-client-dev.yml 返回:dev hello,说明 Server 端会自动读取最新提交的内容。

在完成了上述验证之后,确定配置服务中心已经正常运作,下面我们尝试如何在微服务应用中获取上述的配置信息。

再创建一个基础的 Spring Boot 应用,命名为 config-client。

添加依赖

在 pom.xml 中添加下述依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId>
</dependency>

需要配置两个配置文件,application.yml 和 bootstrap.yml,配置分别如下:配置文件

application.yml

spring:application:name: config-git
server:port: 13000bootstrap.ymlpring:cloud:config:uri: http://localhost:12000 # 配置中心的具体地址,即 config-servername: config-client # 对应 {application} 部分profile: dev # 对应 {profile} 部分label: master # 对应 {label} 部分,即 Git 的分支(默认是master)。如果配置中心使用的是本地存储,则该参数无用

特别注意:上面这些与 Spring Cloud Config 相关的属性必须配置在 bootstrap.yml 中,config 部分内容才能被正确加载。因为 config 的相关配置会先于 application.yml,而 bootstrap.yml 的加载也是先于 application.yml。

启动类

启动类不用修改,只用@SpringBootApplication就行了

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

在 Controller 中使用@Value注解来获取 Server 端参数的值

@RestController
public class HelloController {@Value("${neo.hello:error}")private String profile;@GetMapping("/info")public Mono<String> hello() {return Mono.justOrEmpty(profile);}
}

  

测试

启动项目后访问 http://localhost:13000/info 返回dev说明已经正确的从 Server 端获取到了参数。到此一个完整的服务端提供配置服务,客户端获取配置参数的例子就完成了。

是不是很简单呢,其实很多东西都是这样。在我们还不了解他的时候他对我们是陌生的,当我们真的开始了解他的时候,他对我们来说其实就是那么简单。当然对于我们程序员来说,代码 看了千百遍不如敲十遍。只有多动手才是快速学习的最佳捷径。

转载于:https://www.cnblogs.com/lsbigdata/p/10746851.html

spring cloud config-配置中心相关推荐

  1. (七)Alian 的 Spring Cloud Config 配置中心(客户端)

    目录 一.背景 二.maven依赖 三.配置文件 四.验证 一.背景   通过上一篇文章,我们已经搭建了配置中心了,接下里我们继续改造我们的订单服务了,之前我们的订单服务的数据库配置还是写在配置文件中 ...

  2. Spring Cloud Config 配置中心实践过程中,你需要了解这些细节!

    本文导读: Spring Cloud Config 基本概念 Spring Cloud Config 客户端加载流程 Spring Cloud Config 基于消息总线配置 Spring Cloud ...

  3. (六)Alian 的 Spring Cloud Config 配置中心(服务端)

    目录 一.简介 二.数据库 2.1.应用表 2.2.属性表 2.3.视图 2.4.初始化数据 三.配置 3.1.pom.xml 3.2.application.properties 3.3.主类 3. ...

  4. Spring Cloud Config 配置中心

    1.构建config-server 创建一个pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...

  5. Spring Cloud Config配置中心的使用

    一.概述 1. 为什么使用? 1> 配置文件太多,不方便维护 2> 配置文件一般都保存这各种明文显示的密码,无法保证配置内容的安全性,也无法做到按权限分配给个人 3> 更新配置项目需 ...

  6. git在clone时需要输入密码Enter passphrase for key 导致spring cloud config 配置中心无法拉取配置文件的解决方法

    前几天把系统从win7换到了win10 重装了开发环境 一直没什么问题 今天在调试spring cloud 时 发现无论如何都拉取不到配置文件, 通过微服务日志提示 Could not locate ...

  7. 【SpringCloud】Spring Cloud Config 配置中心

    文章目录 1.概述 1.1 是什么 1.2 怎么玩 1.3 怎么用 3.案例 3.1 案例1 3.1.1 配置 3.1.2 主类 3.1.3 Git信息 3.1.4 访问 4. 例子 5.客户端 5. ...

  8. Spring Cloud Config配置中心使用(草稿版)

    服务端搭建: cli:

  9. 玩转Spring Cloud之配置中心(config server config client)

    玩转Spring Cloud之配置中心(config server &config client)  本文内容导航: 一.搭建配置服务中心(config server) 1.1.git方式 1 ...

  10. 【夯实Spring Cloud】Spring Cloud分布式配置中心详解

    本文属于[夯实Spring Cloud]系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习Spring Cloud技术,希望能给读者带来一些干货.系列目录如下: [夯实Spring Cloud]D ...

最新文章

  1. 把服务器文件备份到文件服务器,服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?...
  2. list index out of range怎么解决_“卿卿我我”和“如胶似漆”英语怎么说?
  3. 信息学奥赛一本通(1327:【例7.6】黑白棋子的移动)
  4. 从ca提取keystore_从keystore(jks)文件中提取私钥
  5. 电商大促首焦背景素材|大火C4D元素
  6. [tensorflow]tensorflow 2.1 函数API(The Functional API)
  7. 【机器人学】机器人动力学参数辨识方法综述
  8. 基于单片机的心率监测系统设计(#0495)
  9. 学习与记忆方法-学习之前先学如何学习
  10. 多肽TAT接枝/功能肽RGDC修饰荧光碳量子点/碳量子点修饰多肽LyP-1的制备研究
  11. LG W800手机上网软件,UCWEB浏览器下载
  12. 【DP练习】月饼盒(提高版)(vijos1255)
  13. 新出炉彩色游戏——炸弹战争1.0版
  14. android win10 投屏,安卓手机投影win10不成功,版本升级前可以
  15. ASP.NET Core 和 EF Core系列教程——CRUD
  16. 谷歌身份验证器验证码不对怎么回事_暴雪战网游戏手机安全令,身份验证器的使用方法...
  17. numpy array 增加一列(行)
  18. python爬取王者皮肤_Python爬取王者荣耀所有英雄以及高清大图
  19. Linux IPC:命名管道的使用
  20. js随机生成姓名及数组去重

热门文章

  1. UVa10082 - WERTYU
  2. 全志 a33 linux qt,全志A33 lichee 搭建Qt App开发环境编写helloworld
  3. java有常函数_Java开发笔记(十一)常见的数学函数
  4. Flex布局实现筛子3
  5. map迭代器遍历_一口气写了 HashMap 的 7种遍历方式,被同事夸了
  6. [leetcode]209. 长度最小的子数组
  7. [leetcode] 95. 不同的二叉搜索树 II
  8. Dekker互斥算法解析
  9. 数据链路层的差错控制ARQ
  10. 2018 CodeM初赛B轮:D.神奇盘子