美文网首页spring
Spring Cloud Config 怎么从配置中心获取配置信

Spring Cloud Config 怎么从配置中心获取配置信

作者: zbsong | 来源:发表于2020-03-29 15:03 被阅读0次

继上一篇介绍了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

image.png 可以看到我们已经获取到了之前在configtest-dev.properties中配置的spring.datasource.url属性的信息了。

Spring Cloud Config客户端在启动的时候,默认会从classpath
中加载配置信息并启动应用,只有当我们配置spring.application.uri的时候,客户端应用才会尝试连接Spring Cloud Config的服务端来获取远程配置信息并初始化Spring环境配置。一定要注意的是spring.application.uri的参数必须配置在bootstrap.properties环境变量或者其他优先级高于应用Jar包内的配置信息中,才能正确加载到远程信息。

相关文章

网友评论

    本文标题:Spring Cloud Config 怎么从配置中心获取配置信

    本文链接:https://www.haomeiwen.com/subject/wnayuhtx.html