0
点赞
收藏
分享

微信扫一扫

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

笑望叔叔 2022-04-22 阅读 29
java后端

Spring Boot官网:点击打开链接

Spring Cloud官网:点击打开链接

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

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

(一)背景知识

(1)Spring Cloud Config简介

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

Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。借助Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念与SpringEnvironmentPropertySource抽象,因此它们非常适合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依赖的版本号 -->

org.springframework.cloud spring-cloud-config-server org.springframework.cloud spring-cloud-dependencies Camden.SR1 pom import

三、依赖添加完成后,创建一个启动类,启动类上需要添加一个注解:@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:点击打开链接

举报

相关推荐

0 条评论