# 155. 商品详情页动态渲染系统:Spring Cloud 之 Config 统一配置中心
::: 本章内容的深入使用请参考此笔记内容 spring cloud config :::
多个服务共享相同的配置,举个例子、数据库连接、redis 连接,还有别的一些东西,包括一些降级开关,等等
# 创建 config-server
用 config 统一配置中心,config-server/build.gradle
plugins {
id 'org.springframework.boot' version '2.1.6.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
ext {
set('springCloudVersion', "Greenwich.SR2")
}
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
implementation 'org.springframework.cloud:spring-cloud-config-server'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
使用注解开启服务
@EnableConfigServer
1
application.yml
server:
port: 9009
spring:
application:
name: config-server
cloud:
config:
server:
git:
# uri: http://localhost/mrcode/config.git
# username: xx
# password: xx
# 为了方便本地测试,使用本地目录方式,但是该目录需要是一个 git 仓库
# 使用 H:\dev\project\mrcode\cache-eshop-config-repo 目录
# test 作为一个配置仓库,在该目录下初始化为一个 git 仓库
uri: file:///H:\dev\project\mrcode\cache-eshop-config-repo\test
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
在 test 目录下添加一个文件 application.yml
name: zq
1
添加完成之后,并提交到 git(默认就是 master)
启动项目后,访问地址:http://localhost:9009/name/cc
{
"name": "name",
"profiles": [
"cc"
],
"label": null,
"version": "72284bf01842408e885bb3a8831e945bf47b5e76",
"state": null,
"propertySources": [
{
"name": "file:///H:\\dev\\project\\mrcode\\cache-eshop-config-repo\\test/application.yml",
"source": {
"name": "zq"
}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
可以看到,找到了该属性名称,并且还有版本号,与所在配置文件与对应的值
# 改造 greeting-service 使用配置中心
增加依赖
implementation 'org.springframework.cloud:spring-cloud-starter-config'
1
增加引导配置文件 bootstrap.yml
spring:
cloud:
config:
uri: http://localhost:9009 # 指向刚才创建的配置中心项目
profile: dev # 默认为 default
1
2
3
4
5
2
3
4
5
使用刚刚配置中心的 name 属性
@Value("${name}") // 该属性在 greeting-service 中的配置文件并没有配置
private String name;
@RequestMapping("/name")
public String name() {
return name;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
重启项目后,访问地址:http://localhost:9005/name 如果返回 zq ,那么表示使用配置中心成功了