spring-cloud-config——Quick Start
参考资料:
http://cloud.spring.io/spring-cloud-static/Camden.SR7/#_spring_cloud_config
Spring Cloud Config为分布式系统中的外部配置提供服务端和客户端的支持。使用Config Server,你可以在所有环境中管理应用程序的外部属性。
客户端和服务端上的概念和与Spring Environment和PropertySource相同,因此非常适合Spring应用程序,也可以与任何语言运行的应用程序一起使用。
当应用程序从开发到测试转移到部署管道时,你可以管理这些环境之间的配置,以确保应用程序拥有迁移时所需的所有内容。服务器存储后端的默认实现使用git,因此它可以轻松支持配置环境的标记版本,并且可以通过各种工具来访问内容。
特点:
Spring Cloud Config Server features:
对于外部配置项(如name-value对或相同功能的YAML内容),提供了基于资源的HTTP接口;
加密和解密属性值(对称或不对称);
使用@EnableConfigServer注解可以很容易将此服务器嵌入到Spring Boot应用程序中。
Config Client features(for Spring applications):
绑定到配置服务器,并使用远程属性资源来初始化Spring环境;
加密和解密属性值(对称和非对称)。
快速入门:
启动服务:
$ cd spring-cloud-config-server
$ ../mvnw spring-boot:run
服务器是一个Spring Boot应用程序,你可以从你的IDE运行它(main类是ConfigServerApplication).然后试着启动一个客户端:
$ curl localhost:/foo/development
{"name":"foo","label":"master","propertySources":[
{"name":"https://github.com/scratches/config-repo/foo-development.properties","source":{"bar":"spam"}},
{"name":"https://github.com/scratches/config-repo/foo.properties","source":{"foo":"bar"}}
]}
查找一个属性资源的默认策略是克隆一个git仓库(at spring.cloud.config.server.git.uri ) ,使用它去初始化一个 mini SpringApplication. 这个mini-application的Environment用来枚举属性资源,并通过JSON节点发布它们。
HTTP服务具有以下形式的资源:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
“applications”是SpringApplication的spring.config.name(一般来说application是一个常规的Spring Boot应用),"profile"是一个active的profile(或者是逗号分隔的属性列表),label是一个可选的git标签(默认为"master").
Spring Cloud Config Server从git仓库(必须提供)为远程客户端提取配置:
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
要在应用程序中使用这些功能,只需将其构建为一个依赖于 spring-cloud-config-client的Spring Boot应用程序。添加依赖最方便的方法是通过Spring Boot启动器org.springframework.cloud:spring-cloud-starter-config. 对于Maven用户还有一个父pom和BOM(spring-cloud-starter-parent),对于Gradle和Spring CLI用户有一个Spring IO版本管理文件。例如Maven的配置:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> <!-- repositories also needed for snapshots and milestones -->
然后创建一个标准的Spring Boot应用程序,就像这个简单的HTTP服务器:
@SpringBootApplication
@RestController
public class Application { @RequestMapping("/")
public String home() {
return "Hello World!";
} public static void main(String[] args) {
SpringApplication.run(Application.class, args);
} }
运行时,它将从端口8888上的默认本地配置服务器(如果它正在运行)中选取外部配置。要修改启动行为,可以使用bootstrap.properties(类似于application.properties,但是是一个应用上下文启动的配置文件)更改配置服务器的位置,例如:
spring.cloud.config.uri: http://myconfigserver.com
引用属性将作为高优先级属性源显示在 /env 端点中,例如:
$ curl localhost:/env
{
"profiles":[],
"configService:https://github.com/spring-cloud-samples/config-repo/bar.properties":{"foo":"bar"},
"servletContextInitParams":{},
"systemProperties":{...},
...
}
(名为“ConfigService:<远程存储库的URL>/<文件名>”的属性源包含了具有值"bar"的属性"foo"并且是最高优先级的)
note:属性源名称中的URL是git仓库地址而不是配置服务器的URL。
spring-cloud-config——Quick Start的更多相关文章
- Spring Cloud Config
Spring Cloud Config provides server and client-side support for externalized configuration in a dist ...
- spring cloud连载第二篇之Spring Cloud Config
Spring Cloud Config Spring Cloud Config为分布式服务提供了服务侧和客户侧的外部配置支持.通过Spring Cloud Config你可以有一个统一的地方来管理所有 ...
- spring cloud config 入门
简介 Spring cloud config 分为两部分 server client config-server 配置服务端,服务管理配置信息 config-client 客户端,客户端调用serve ...
- Spring Cloud官方文档中文版-Spring Cloud Config(上)
官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#spring-cloud-feign 文中例子我做了一些测试在:http ...
- Spring Cloud官方文档中文版-Spring Cloud Config(下)-客户端等
官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#_serving_alternative_formats 文中例子我做了 ...
- SpringCloud的配置管理:Spring Cloud Config
演示如何使用ConfigServer提供统一的参数配置服务 ###################################################################一.概 ...
- 搭建spring cloud config
很久没更新了,因为不是专职研究spring cloud,因此更新速度得看工作强度大不大,每天能抽出的时间不多,如果更新太慢了,并且有小伙伴看的话,请见谅了. Spring Cloud简介 Spring ...
- Spring Cloud Config - RSA简介以及使用RSA加密配置文件
简介 RSA非对称加密有着非常强大的安全性,HTTPS的SSL加密就是使用这种方法进行HTTPS请求加密传输的.因为RSA算法会涉及Private Key和Public Key分别用来加密和解密,所以 ...
- Spring Cloud Config 分布式配置中心使用教程
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...
- 【spring实战第五版遇到的坑】第14章spring.cloud.config.uri和token配置项无效
本文使用的Spring Boot版本为:2.1.4.RELEASE Spring Cloud版本为:Greenwich.SR1 按照书上的做法,在application.yml中配置配置服务器的地址和 ...
随机推荐
- SQLSERVER 检查内容
巡检内容: 1系统信息A. 机器名称:B. 硬件配置:Intel(R) CPU E5-2630 2.3GHz(2处理器),24核,16G内存C. 操作系统版本:Windows Server 2008 ...
- linux 强制删除杀死进程 sudo pkill uwsgi -9 杀死uwsgi 关闭防火墙 iptables -F
sudo pkill -f uwsgi -9 四.关闭防火强 iptables -F #清空规则 systemctl stop firewalld #关闭防火墙服务 ...
- Java 关于密码处理的工具类[MD5编码][AES加密/解密]
项目中又遇到了加密问题,又去翻了半天,然后做测试,干脆就把常用的两类小结一下. 1.第一种所谓的MD5加密 其实也不算加密,只是基于Hash算法的不可逆编码而已,等于说,一旦经过MD5处理,是不可能从 ...
- Python2与python3 文件操作关于打开文件
#首先在python3中操作文件只有一种选择,那就是open() #而在python2中则有两种方式:file()与open() 两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两 ...
- Linux之grep的使用
基本介绍 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...
- tensorboard使用过程错误记录
首先代码如下: def word_vis(self,file,txtname):#生成的模型存放的地址:word_vismodel'+file为新建的文件夹名 txtname是通过word2vec生成 ...
- 苹果 ios 微信浏览器界面 ajax 提交带 file 的 form 总是走error方法
1. 问题 问题出在微信端,而且是苹果机的微信端(苹果你咋这么矫情,安卓正常).:代码还是之前的代码,貌似是苹果升级系统后部分版本出现的 BUG,后来证明确实跟 ios 版本有关,网上也找过类似的解决 ...
- shiro 角色与权限的解读
1.为什么 shiro 有了<角色>后,还要设置<角色权限>呢?(问题) 思考:设置好角色了,那么就代表什么操作都可以执行了吗? 理解:如果上边回答是的话,那么只是<角色 ...
- [js]js设计模式-原型模式
构造函数模型- 对象的属性和方法每人一份 function createJs(name, age) { this.name = name; this.age = age; this.writeJs = ...
- Redis配置文件redis.conf详解
一.Redis配置文件redis.conf详解 # Note on units: when memory size is needed, it is possible to specifiy # it ...