Spring Cloud Config 怎么从配置中心获取配置信
继上一篇介绍了Spring Cloud Config实现了基于Git的配置中心服务,现在我们来看一下客户端怎么去获取配置中心的配置信息。
- 构建客户端应用
1.新建一个Spring Boot应用,命名为config-client(随意)
2.编辑pom.xml,主要依赖内容如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
3.创建bootstrap.properties
文件,配置服务的基本信息和配置中心服务端信息
spring.application.name=configtest
spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.uri=http://localhost:7000/
server.port=7001
spring.application.name
:对应配置文件规则中的{application}
spring.cloud.config.profile
:对应配置文件规则中的{profile}
spring.cloud.config.label
:对应配置文件规则中的{label}
spring.application.uri
:配置中心的地址
注意:上面的信息必须配置在
bootstrap.properties
中,这样配置中心的配置信息才能正确加载。这是因为本应用jar包之外的配置文件加载会优先于应用jar包内的配置内容,而通过bootstrap.properties
对config-server的配置,使得应用会从congig-server中获取一些外部配置信息,这些信息的优先级比本地的内容要高,从而实现了外部化配置。
4.创建TestController
@RestController
@RequestMapping(value = "/config-client")
public class TestController {
@Value("${spring.datasource.url}")
private String url;
@GetMapping(path = "/test")
public String getSence() {
return url;
}
}
使用@Value
绑定配置服务中配置的属性,也可以使用Environment对象来获取配置属性。
测试
启动config-server、config-client
访问:http://localhost:7001/config-client/test
![](https://img.haomeiwen.com/i10516977/329e4bbd45decefb.png)
configtest-dev.properties
中配置的spring.datasource.url
属性的信息了。
Spring Cloud Config客户端在启动的时候,默认会从classpath
中加载配置信息并启动应用,只有当我们配置spring.application.uri
的时候,客户端应用才会尝试连接Spring Cloud Config的服务端来获取远程配置信息并初始化Spring环境配置。一定要注意的是spring.application.uri
的参数必须配置在bootstrap.properties
、环境变量
、或者其他优先级高于应用Jar包内的配置信息中
,才能正确加载到远程信息。