序言
在以前配置文件都是在项目中通过手动配置,然后每次发布到环境,这样的方式低效率,高耦合。后来出现配置中心,我们可以将配置集中到一个配置中心项目,这样方便配置的统一管理,像zookeeper和spring cloud config这样的配置中心中间件。
spring cloud config项目搭建
idea搭建spring boot项目
https://blog.youkuaiyun.com/w8827130/article/details/109934393 最简单SpringBoot项目创建
项目结构
SpringcloudconfigApplication.java
启动类添加@EnableConfigServer注解
package com.example.springcloudconfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@SpringBootApplication
public class SpringcloudconfigApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudconfigApplication.class, args);
}
}
application.yml
uri配置git的配置中心项目的地址,skip-ssl-validation填true(跳过https证书验证)
server:
port: 8081
spring:
cloud:
config:
server:
git:
uri: https://github.com/mydai/config.git
searchPaths: dev
skip-ssl-validation: true
default-label: master
application:
name: config-server
pom.xml
新增spring-cloud-config-server依赖
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>springcloudconfig</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloudconfig</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
配置项目
本地创建配置文件项目
将其push到git仓库
配置项目命名规则
一共支持以下几种方式:
- /{application}/{profile}[/{label}]
- /{application}-{profile}.yml
- /{label}/{application}-{profile}.yml
- /{application}-{profile}.properties
- /{label}/{application}-{profile}.properties
而我采用的是第2种方式(config-dev.properties):
- label 分支名称 如:master dev ,不写就是master。
- application 配置文件名称(config是项目名)
- profiles 环境名称,不可省略,假如我们的仓库中配置文件命名没有环境名称,可以profile可以写为-a (dev)
验证
参考文章
https://blog.youkuaiyun.com/qq_35387940/article/details/94616604 springcloudconfig项目搭建
https://github.com/waylau/git-for-win git下载