GitHub新建仓库

GitHub新建一个仓库,命名为:microservice-config

在本地新建一个文件夹,也命名为:microservice-config,在文件夹内新建三个文件:application.yml、application-v1.yml和application-v2.yml,主要用于访问

application.yml内容为:

1
profile: hello

application-v1.yml内容为:

1
profile: hello111

application-v2.yml内容为:

1
profile: hello222

把文件夹内的所有文件都上传到刚刚新建的GitHub仓库中

使用步骤

新建Module

在idea中新建一个Module,为Maven项目,命名为:microservice-config-server-4001

引入依赖

引入依赖config server依赖,我的完整pom.xml如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?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">
<modelVersion>4.0.0</modelVersion>

<!--继承microservice依赖版本-->
<parent>
<groupId>org.example</groupId>
<artifactId>microservice</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath/>
</parent>

<artifactId>microservice-config-server-4001</artifactId>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>

<dependencies>
<!--引入microservice-common依赖,引入后可以使用microservice-common的实体类,工具类等-->
<dependency>
<groupId>org.example</groupId>
<artifactId>microservice-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
</project>

application.yml配置

uri为GitHub仓库的http地址,但是去掉了后缀.git

1
2
3
4
5
6
7
8
9
10
11
server:
port: 4001

spring:
application:
name: microservice-config
cloud:
config:
server:
git:
uri: https://github.com/a6678696/microservice-config

添加启动类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.ledao;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.cloud.config.server.EnableConfigServer;

/**
* 配置服务启动类
*
* @author LeDao
* @company
* @create 2021-08-18 18:51
*/
@EnableConfigServer
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class ConfigServerApplication_4001 {

public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication_4001.class, args);
}
}

添加本地域名映射

找到 C:\Windows\System32\drivers\etc 打开hosts,底部加配置:

1
127.0.0.1  configserver.ledao.com

测试

启动microservice-config-server-4001项目

地址栏输入:http://configserver.ledao.com:4001/application-v1.yml 可以返回application-v1.yml的内容

地址栏输入:http://configserver.ledao.com:4001/application-v2.yml 可以返回application-v2.yml的内容

地址栏输入:http://configserver.ledao.com:4001/application-v3.yml 会返回application.yml的内容,其实GitHub仓库中并没有application-v3.yml这个文件,但是却访问了它,最终会返回根文件application.yml的内容

PS.

请求路径匹配规则如下:

1
2
3
4
5
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties