文章目录
SpringCloud Config Server的作用实际上是充当Spring应用和存放在Git中的配置文件之间的媒介,为其他应用提供一个统一的配置管理中心,架构图如下:
图片出处: Config 简介以及搭建server端
关于SpringCloud Config的介绍可以参考:SpringCloud Config简介
本文介绍SpringCloud Config Server的搭建步骤。
1 创建Git仓库
这一步简单,随便创建一个目录,在该目录下执行下git init
即可。
当然也可以从GitHub或GitLab上创建一个仓库,再git clone
到本地。
2 创建应用配置文件
在上面创建的目录下,创建一个a-bootiful-client.properties
文件,文件内容:
message = Hello world
这里需要注意一下,Config Server中每个配置文件对应一个应用,如a-bootiful-client.properties
这个配置文件中保存的就是应用名为a-bootiful-client
的应用的配置。如果要保存所有应用通用的配置,可以放在application.properties
或application.yml
中,如果通用配置中的配置项和特定应用的配置项发生冲突,特定应用的配置项会覆盖调通用配置中的配置项。
3 将应用配置文件commit到Git仓库中
这里也有个地方需要注意的,Spring Config只能读取到commit到Git中的配置信息,只修改了配置文件没有commit是不会生效的。
执行以下命令,将应用配置文件commit到Git仓库中:
git add .
git commit -m 'add'
4 创建Config Server应用
为了方便,我们可以在https://start.spring.io创建一个Config Server模板应用,进入https://start.spring.io,依赖选择Config Server,填写包名等信息后点击GENERATE
按钮,生成一个Config Server项目的压缩包:
解压该压缩包,导入到Idea中(其他IDE应该也一样)。
5 配置运行Config Server
在src/main/resources/application.properties
加入以下配置:
server.port=8888
spring.cloud.config.server.git.uri=${HOME}/Documents/workspaces/git/springcloudconfig
server.port
修改应用的监听的端口为8888,防止和其他应用冲突。
spring.cloud.config.server.git.uri
指定了Git仓库的地址,即第一步我们创建的目录。
打开ConfigserverApplication.java
文件,生成的这个Java文件不知道怎么的少了一个注解@EnableConfigServer
,需要加上去,如下:
package com.example.configserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class ConfigserverApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigserverApplication.class, args);
}
}
完成上述配置以后不出意外的话run一下就可以运行起来了。
6 访问Config Server
打开浏览器,输入地址 http://localhost:8888/a-bootiful-client/default
,可以看到一下界面:
注意,地址中的a-bootiful-client
是第2步中创建的配置文件的名称,返回的Json数据中的source
即是配置文件中定义的配置信息。