接上篇《Spring Cloud 探索 | 分布式配置中心(Config Server)》,再来讲解一下 Config Client 的配置过程。
Spring Cloud Config Client 配置过程
1、pom.xml 添加依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<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>Finchley.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<!-- Config Client 的依赖 -->
<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>
<!-- 作为web应用启动,不添加的话会启动失败,并且endpoints功能也会不能使用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2、添加配置信息
application.yml
server:
port: 8080 # 指定监听端口
# 加载所有的端点。默认只加载了 info / health
management:
endpoints:
web:
exposure:
include: "*"
bootstrap.yml
spring:
application:
name : configClient01
cloud:
config:
profile: test
label: master
uri: http://localhost:8090
配置解释:
spring.cloud.config.*
:默认情况下,Config Server 会提供来自/{name}/{profile}/{label}
的属性来源,其中 Config Client 中的默认绑定是:
"name" = ${spring.application.name}
"profile" = ${spring.profiles.active}
(actually Environment.getActiveProfiles())"label" = "master"
但是,所有这些都可以通过设置spring.cloud.config.*
(其中*
为“name”
,“profile”
或“label”
)来覆盖。(这里我们使用的是这种方式)
label 对于回滚到以前版本的配置非常有用;使用默认的 Config Server 实现时,label 可以是 git label,branch name 或者 commit id。label 也可以作为逗号分隔的列表提供,在这种情况下,列表中的项目将逐个尝试,直到一个成功。例如,当在一个 feature 分支上开发时,可能希望将 label 与分支对应,但将其设置为可选的(例如,spring.cloud.config.label = myfeature,develop)。
spring.cloud.config.uri
:Config Server 的地址;spring.application.name
:配置应用名称(有注册中心时用于对应用进行标识),这里暂时没有什么用处(也被上边覆盖掉了);
3、对 Config Server 端配置进行修改
只需要修改 search-paths
,至于为什么这样做,请看这里:《Spring Cloud 探索 | 分布式配置中心(Config Server)》
spring:
cloud:
config:
server:
git:
search-paths : '{application}'
4、进行测试
未完待续。。。。。。