一、创建 Config 配置中心项目
1. 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2. 启动类,需要添加 @EnableConfigServer
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
/**
* @author fusw
*/
@SpringBootApplication
@EnableConfigServer
public class ConfigCenterApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigCenterApplication.class, args);
}
}
3. 配置文件
eureka.instance.appname=base-iov-config
security.user.name=test
security.user.password=test
# GitLab 的配置方式,必须有 .git 后缀
# 配置默认 git 仓库的地址
spring.cloud.config.server.git.uri=http://xxxx/config-repo.git
# git 仓库地址下的相对地址,可以配置多个,用“,”分割
spring.cloud.config.server.git.search-paths=*
#配置中心 clone 仓库配置文件后存放的地址
spring.cloud.config.server.git.basedir=/data/deploy/config-repo
spring.cloud.config.server.git.force-pull=true
# git 仓库的账号
spring.cloud.config.server.git.username=test
# git 仓库的密码
spring.cloud.config.server.git.password=test
# 配置 其它 git 仓库的地址 spring.cloud.config.server.git.repos.x.uri, iot 为例
spring.cloud.config.server.git.repos.iot.uri=http://xxxx/iot/config-repo.git
spring.cloud.config.server.git.repos.iot.search-paths=*
spring.cloud.config.server.git.repos.iot.basedir=/data/deploy/config-repo
spring.cloud.config.server.git.repos.iot.force-pull=true
# git 仓库的账号
spring.cloud.config.server.git.repos.iot.username=test
# git 仓库的密码
spring.cloud.config.server.git.repos.iot.password=test
#前缀一定要配置,用来和默认仓库区分
spring.cloud.config.server.git.repos.iot.pattern=Iot*
# 注册中心
eureka.client.serviceUrl.defaultZone=http://xxx/eureka/
二、git 存放配置的仓库
创建一个 git 仓库用来存放各项目配置,可以在项目一级目录根据项目创建文件夹 (各项目文件夹的名称可以随便起,Config 配置中心只根据配置文件名找配置),然后各个项目文件夹存放不同环境的配置文件,例如:Iot-TestProject-dev.ymlIot-TestProject-prd.ymlIot-TestProject-test.yml
最好不要放置 test.yml 类似的默认配置,如果在各个项目配置文件中没有用 spring.profiles.active 指明使用的配置文件,那么会加载默认的配置文件。
三、各个 SpringCloud 的项目配置接入配置中心
在 resource 下的 bootstrap.properties 配置文件中,配置中心的相关配置如下
# 使用默认仓库的配置文件
spring.cloud.config.name=TestProject
# 使用 iot 厂库的配置文件
#spring.cloud.config.name=Iot-TestProject
#使用哪个环境的配置文件,和上面的配置配合,决定了使用哪一个配置文件:TestProject -test.yml
spring.cloud.config.profile=test
# 对应 存放配置文件仓库的 git 分支
spring.cloud.config.label=master
spring.cloud.config.username=test
spring.cloud.config.password=test
# 开启 Config 服务发现支持
spring.cloud.config.discovery.enabled=true
# 指定 Server 端的 name,也就是 Server 端 spring.application.name 的值
spring.cloud.config.discovery.serviceId=base-iov-config