1、pom文件
<?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.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.tianchi</groupId>
<artifactId>springcloudconfigclient</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloudconfigclient</name>
<description>Demo project for Spring Boot</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2、 bootstrap文件
使用spring cloud config必须将config相关配置文件放在bootstrap文件中,因为bootstrap文件配置信息要先于Application配置文件加载,而spring cloud config也是先于Application配置文件加载,如果将config配置信息放在Application中将会无法加载配置文件,导致程序报错
spring.application.name=spring-cloud-config-client
server.port=8002
#配置文件名称,多个用,隔开
spring.cloud.config.name=application
#可以理解为配置文件后缀,可以用于区分不同环境
spring.cloud.config.profile=wh
#注册在Eureka中心的config服务端注册名
spring.cloud.config.discovery.serviceId=spring-cloud-config-server
#分支名称
spring.cloud.config.label=master
spring.cloud.bus.trace.enabled=true
spring.cloud.config.discovery.enabled=true
#Eureka注册中心地址,多个用,隔开
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
server.tomcat.uri-encoding=utf-8
spring.http.encoding.charset=utf-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
配上github配置文件路径截图,以供参考
配置文件匹配规则如下
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
3、Application启动项
新增@EnableDiscoveryClient注解
4、新建controller层开放接口
spring boot加载配置文件使用的是ISO8859-1格式,这里手动转换为了utf-8格式,防止中文乱码
new String(name.getBytes("ISO8859-1"), "utf-8")
由此即完成了Eureka+config的配置文件读取