欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Boot(二)之搭建spring cloud config配置中心

程序员文章站 2022-07-15 10:16:53
...

Spring Boot官网:点击打开链接

Spring Cloud官网:点击打开链接

Spring Cloud Config官网 : 点击打开链接

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

(一)背景知识

(1)Spring Cloud Config简介

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

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

(2)Spring Cloud Config特点

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

配置客户端功能(针对Spring应用程序):

  • 绑定到配置服务器并Environment使用远程属性来初始化Spring
  • 加密和解密属性值(对称或不对称)

(二)搭建spring cloud config 服务器端

一、新建一个Maven项目

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

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

Spring Boot(二)之搭建spring cloud config配置中心

输入ArtifactId信息

Spring Boot(二)之搭建spring cloud config配置中心

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

Spring Boot(二)之搭建spring cloud config配置中心

创建完成

Spring Boot(二)之搭建spring cloud config配置中心

创建完成后,这个时候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 Boot(二)之搭建spring cloud config配置中心

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

(三)搭建spring cloud config 客户端

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

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

创建好之后,如下图

Spring Boot(二)之搭建spring cloud config配置中心

二、启动类

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 Boot(二)之搭建spring cloud config配置中心


创建完成

Spring Boot(二)之搭建spring cloud config配置中心

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

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

Spring Boot(二)之搭建spring cloud config配置中心

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

六、启动客户端

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

Spring Boot(二)之搭建spring cloud config配置中心

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

Spring Boot(二)之搭建spring cloud config配置中心

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

具体项目可以查看我的github:  点击打开链接