spring cloud config-配置中心
在咱们日常开发中,对于一些信息的配置加载一般都不会在代码中写死,而是通过一些配置动态加载。对于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-配置中心相关推荐
- (七)Alian 的 Spring Cloud Config 配置中心(客户端)
目录 一.背景 二.maven依赖 三.配置文件 四.验证 一.背景 通过上一篇文章,我们已经搭建了配置中心了,接下里我们继续改造我们的订单服务了,之前我们的订单服务的数据库配置还是写在配置文件中 ...
- Spring Cloud Config 配置中心实践过程中,你需要了解这些细节!
本文导读: Spring Cloud Config 基本概念 Spring Cloud Config 客户端加载流程 Spring Cloud Config 基于消息总线配置 Spring Cloud ...
- (六)Alian 的 Spring Cloud Config 配置中心(服务端)
目录 一.简介 二.数据库 2.1.应用表 2.2.属性表 2.3.视图 2.4.初始化数据 三.配置 3.1.pom.xml 3.2.application.properties 3.3.主类 3. ...
- Spring Cloud Config 配置中心
1.构建config-server 创建一个pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...
- Spring Cloud Config配置中心的使用
一.概述 1. 为什么使用? 1> 配置文件太多,不方便维护 2> 配置文件一般都保存这各种明文显示的密码,无法保证配置内容的安全性,也无法做到按权限分配给个人 3> 更新配置项目需 ...
- git在clone时需要输入密码Enter passphrase for key 导致spring cloud config 配置中心无法拉取配置文件的解决方法
前几天把系统从win7换到了win10 重装了开发环境 一直没什么问题 今天在调试spring cloud 时 发现无论如何都拉取不到配置文件, 通过微服务日志提示 Could not locate ...
- 【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. ...
- Spring Cloud Config配置中心使用(草稿版)
服务端搭建: cli:
- 玩转Spring Cloud之配置中心(config server config client)
玩转Spring Cloud之配置中心(config server &config client) 本文内容导航: 一.搭建配置服务中心(config server) 1.1.git方式 1 ...
- 【夯实Spring Cloud】Spring Cloud分布式配置中心详解
本文属于[夯实Spring Cloud]系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习Spring Cloud技术,希望能给读者带来一些干货.系列目录如下: [夯实Spring Cloud]D ...
最新文章
- 把服务器文件备份到文件服务器,服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?...
- list index out of range怎么解决_“卿卿我我”和“如胶似漆”英语怎么说?
- 信息学奥赛一本通(1327:【例7.6】黑白棋子的移动)
- 从ca提取keystore_从keystore(jks)文件中提取私钥
- 电商大促首焦背景素材|大火C4D元素
- [tensorflow]tensorflow 2.1 函数API(The Functional API)
- 【机器人学】机器人动力学参数辨识方法综述
- 基于单片机的心率监测系统设计(#0495)
- 学习与记忆方法-学习之前先学如何学习
- 多肽TAT接枝/功能肽RGDC修饰荧光碳量子点/碳量子点修饰多肽LyP-1的制备研究
- LG W800手机上网软件,UCWEB浏览器下载
- 【DP练习】月饼盒(提高版)(vijos1255)
- 新出炉彩色游戏——炸弹战争1.0版
- android win10 投屏,安卓手机投影win10不成功,版本升级前可以
- ASP.NET Core 和 EF Core系列教程——CRUD
- 谷歌身份验证器验证码不对怎么回事_暴雪战网游戏手机安全令,身份验证器的使用方法...
- numpy array 增加一列(行)
- python爬取王者皮肤_Python爬取王者荣耀所有英雄以及高清大图
- Linux IPC:命名管道的使用
- js随机生成姓名及数组去重
热门文章
- UVa10082 - WERTYU
- 全志 a33 linux qt,全志A33 lichee 搭建Qt App开发环境编写helloworld
- java有常函数_Java开发笔记(十一)常见的数学函数
- Flex布局实现筛子3
- map迭代器遍历_一口气写了 HashMap 的 7种遍历方式,被同事夸了
- [leetcode]209. 长度最小的子数组
- [leetcode] 95. 不同的二叉搜索树 II
- Dekker互斥算法解析
- 数据链路层的差错控制ARQ
- 2018 CodeM初赛B轮:D.神奇盘子