Spring Boot官网:点击打开链接 <https://projects.spring.io/spring-boot/>

Spring Cloud官网:点击打开链接 <https://projects.spring.io/spring-cloud/>

Spring Cloud Config官网 : 点击打开链接 <https://cloud.spring.io/spring-cloud-config/>


上一篇是SpringBoot入门,这篇就是干货结合springcloud的介绍了,在学习搭建之前我觉着有必要先看看这三个网址,相信我,这对你接下来的学习会很有帮助。

(一)背景知识


(1)Spring Cloud Config简介

这个是Spring Cloud Config官网上面对Config的介绍

       Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。借助Config
Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念与Spring Environment和PropertySource
抽象,因此它们非常适合Spring应用程序,但可以与任何运行在任何语言的应用程序一起使用。
随着应用程序从开发到测试转移到部署管道中,您可以管理这些环境之间的配置,并确保应用程序具有在迁移时所需运行的所有内容。
服务器存储后端的默认实现使用git,因此它可以轻松支持配置环境的标签版本,并且可以用于管理内容的各种工具。使用Spring配置很容易添加替代实现并将其插入。


(2)Spring Cloud Config特点

* HTTP,用于外部配置的资源API(名称 - 值对或同等YAML内容)
* 加密和解密属性值(对称或不对称)
* 使用可轻松嵌入Spring Boot应用程序 @EnableConfigServer
配置客户端功能(针对Spring应用程序):

* 绑定到配置服务器并Environment使用远程属性来初始化Spring
* 加密和解密属性值(对称或不对称)
(二)搭建spring cloud config 服务器端

一、新建一个Maven项目

由于我的项目是在以前的所写的项目的基础上建立的,所以我这里只是新建了一个子module项目。

在父项目上右键选择New Module新建一个Maven子项目。




输入ArtifactId信息




下一步,输入项目名,选择项目存放目录,点击Finish既可创建完成




创建完成




创建完成后,这个时候pom.xml文件里面什么依赖都没有。

二、我们需要添加开启spring cloud config相关的依赖
<?xml version="1.0" encoding="UTF-8"?> <project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent>
<artifactId>spring-cloud-demo</artifactId> <groupId>spring-cloud-demo</groupId>
<version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion>
<artifactId>spring-cloud-config-server</artifactId>     <!-- 由于下面有spring
cloud版本控制,所以在这里不再添加config-server依赖的版本号 --> <dependencies> <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId> </dependency>
</dependencies> <!-- 引入spring cloud组件统一版本控制 --> <dependencyManagement>
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR1</version> <type>pom</type> <scope>import</scope>
</dependency> </dependencies> </dependencyManagement></project>
三、依赖添加完成后,创建一个启动类,启动类上需要添加一个注解: @EnableConfigServer
在resources文件里面,新建一个bootstrap.yml文件

bootstrap.yml填写配置信息
server: port: 8888 spring: application: name: spring-cloud-config-server
cloud: config: server: git: uri: https://github.com/hahaxiaowei/config-repo.git
search-paths: config-repo
Spring Cloud config配置信息讲解

Spring Cloud Config
Server从git仓库(必须提供)中为远程客户端提取配置,所以在这里我们需要配置上你的git远程仓库,我的远程仓库放在了github上面了。所以我这边就把远程仓库的github地址写了上去。


search-paths:属性表示搜索,如果你的仓库中有很多子文件,那么为了让config快速搜索到配置信息的存放目录,你就可以指定搜索文件名,因为我这里就一个文件名,所以我在这里写仓库名了。

四、运行启动类。




正常启动了,好了,现在服务器端的搭建已经完成,接下来我们开始搭建客户端,也就是我们怎么从远程读取我们客户端的配置信息。

(三)搭建spring cloud config 客户端

一、新建一个Maven项目:spring-cloud-config-client,作为客户端

创建过程如上,在这里不再赘述

创建好之后,如下图




二、启动类
package com.example; import org.springframework.boot.SpringApplication; import
org.springframework.boot.autoconfigure.SpringBootApplication; import
org.springframework.cloud.client.discovery.EnableDiscoveryClient; /** * Created
by sunwei on 2018-03-09 Time:16:15:30 */ @SpringBootApplication
@EnableDiscoveryClient public class SpringCloudCofigClientApplication { public
static void main(String[] args) {
SpringApplication.run(SpringCloudCofigClientApplication.class,args);
System.out.println("SpringCloudCofigClientApplication begins starts"); } }
三、bootstrap.yml
spring: cloud: config: name: spring-cloud-config-client profile: dev uri:
http://10.3.99.29:8888 label: master
四、属性讲解



HTTP服务具有以下形式的资源:
/ {应用} / {轮廓} [/ {标号}] /{application}-{profile}.yml
/{label}/{application}-{profile}.yml /{application}-{profile}.properties
/{label}/{application}-{profile}.properties上面是官方文档上面讲解
name:就是你在远程仓库的yml文件名

profile:激活的剖面,比如spring.profiles.active = dev

label:git资源的label 默认是master

由于是从远程获取的配置信息,所以我们需要把配置信息放到远程仓库里面,文件名字为:spring-cloud-config-client-dev.yml







创建完成




五、为了测试spring cofig server能不能用,我们运行spring-cloud-config-server项目,然后,我们可以在浏览器器中输入

http://10.3.99.29:8888/spring-cloud-config-client-dev.yml




如果你能看到上图的配置信息,说明服务器端这边是正常的,即使客户端出错你也可以排除是服务器端出错。

六、启动客户端

可以看到启动时,是从服务器端获取的配置信息。




最终启动完成,我们可以看到端口号7777就是我们再远程仓库里面,配置的信息。




好了,到这里客户端的使用也完成了。

具体项目可以查看我的github:  点击打开链接
<https://github.com/hahaxiaowei/spring-cloud-demo.git>

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信