Spring Cloud Config的Server服务端,连接远端仓库并成功提供了配置服务端点。Config Server服务端可以从后端存储中(上图为Git)拉取配置参数、属性,然后对外提供获取相应环境(dev开发、stage预发布、prod生产)配置的Restful服务。
一.在远端gitee码云上创建一个仓库
1.登录码云的网站,注册一个账号,然后进行登录,在头像的“+”号处,创建仓库
2.进入仓库创建页面,填写必须字段,进行仓库的创建:
然后我们的仓库案例就创建成功了:
二.安装git:https://git-scm.com/downloads, 安装完成后,查看是否安装成功:
三.clone远程仓库项目:
1.在D盘下新建一个mayun-gitee文件夹,进入mayun-gitee文件夹下,右键:选择“git GUI here”使用git的图形化界面:
3.选择上面的克隆已有仓库的选项,然后填写前面我们复制的仓库地址:https://gitee.com/jurf-liu/spring-cloud-config-demo.git
4.点击“Clone”后,远程仓库的文件就被拉进来了,人工不干预,自己一路狂奔到如下图的页面:
5.在D:\mayun-gitee\spring-cloud-config-demo文件夹下,新建application-dev.yml、application-pre.yml、application-prod.yml这3个配置文件:
6.在3个配置文件分别配置内容:
application-dev.yml文件中的内容:
server:
port: 8009-1
spring:
application:
name: ms-config-server-dev
application-pre.yml文件中的内容:
server:
port: 8009-2
spring:
application:
name: ms-config-server-pre
application-prod.yml文件中的内容:
server:
port: 8009-2
spring:
application:
name: ms-config-server-pre
7.点击“Rescan”刷新仓库,检测出有变动的文件:
8.将未跟踪的文件提交到stage区域:
9.将stage区域跟踪的文件提交到本地仓库:
10.点击push,将本地仓库信息提交到远程仓库,并按提示输入相关的账号
11.输入密码和用户名:如果输入错误,后续一直提示输入错误的信息,解决办法为:https://blog.csdn.net/qq_26878363/article/details/83146567
12.查看远程仓库gitee:
四.新建config server服务:
1.pom文件:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2.编写启动类:
package com.ljf.weifuwu.springcloud.config.server;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
/**
* Hello world!
*
*/
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApp
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
3.配置application配置文件:配置文件的uri修改为我们新建的gitee仓库,注:原地址后面的“.git”可以不要。
server:
port: 8009
spring:
application:
name: ms-config-server
cloud:
config:
server:
git:
uri: https://gitee.com/jurf-liu/spring-cloud-config-demo.git
4.直接启动Config Server微服务,来准备访问我们的远端配置,使用Config Server微服务访问远端配置文件,可以直接通过RESTful风格的URL形式访问
Spring Cloud提供了以下几种方式:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
上面的{label}为标签 ,{application}为应用标识,{profile}为
1.dev的访问结果:http://localhost:8009/application-dev.yml
2.pre的访问结果:http://localhost:8009/application-pre.yml
3.prod的访问结果:http://localhost:8009/application-prod.yml
5.其他访问情况
1.如果有多个分支,可以在文件前面加载分支的标签,如我们的文件在master分支上,就是:
http://localhost:8009/master/application-prod.yml
不加分支默认访问master分支。
2.abc-dev.yml根本就不存在,如果我们去访问http://localhost:8009/master/abc-dev.yml,他会以http://localhost:8009/master/application-dev.yml的文件进行显示,即将application替代不存在的abc
3.如果我们访问根本就不存在的文件,application-222.yml文件,它会提示空json串。
我们可以提供一个当一个文件不存在,以默认文件显示,好的,现在创建一个默认文件application文件:
参考第二部提交步骤,将此文件提交到远程仓库中。
最后进行访问:我们再访问不存在的版本配置,就会指向默认配置文件: