28-springcloud-config-4-构建 Springcloud config 配置中心客户端

发布时间 2023-04-14 14:23:37作者: companion

前面已经搭建好了配置中心的服务端,并且通过访问接口从config服务端读取配置信息 不过实际开发中,更多的不是我们人为去获取配置信息,而是由微服务自己config服务端上加载配置信息 那么怎么来加载呢?

1、我们的各个微服务都是客户端,比如服务提供者、服务消费者等各个微服务都可以从配置中心获取配置信息,但是要添加如下依赖:

<!-- spring-cloud-starter-config -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency

2、创建 bootstrap.properties 文件,用于获取配置信息,文件内容如下:

(注意这些信息一定要放在 bootstrap.properties 文件中才有效)
spring.application.name=application
spring.cloud.config.profile=dev  -------指定的是用的配置中心的哪个文件
spring.cloud.config.label=master
spring.cloud.config.uri=http://localhost:8888/

其中:

name 对应配置文件中的 application 部分,

profile 对应了 profile 部分,

label 对应了 label 部分,

uri 表示配置中心的地址。

我们解释一下bootstrap.properties 文件;

Spring Cloud有一个“引导上下文"的概念,这是主应用程序的父上下文。引导上下文负责从配置服务器加载配置属性,以及解密外部配置文件中的属性。和主应用程序加载application.(yml或 properties)中的属性不同,引导上下文加载(bootstrap.)中的属性。配置在 bootstrap.*中的属性有更高的优先级,因此默认情况下它们不能被本地配置覆盖;

3、创建一个 Controller 进行测试:

@RestController

@RefreshScope

public class ConfigController {

@Value("${url}")//读取远程配置中心配置的信息

private String url;

@Autowired

private Environment env;

@RequestMapping("/cloud/url")

public String url () {

return this.url;

}

@RequestMapping("/cloud/url2")

public String url2 () {

return env.getProperty("url");

}

我们可以直接使用@Value 注解注入配置的属性值,也可以通过 Environment

对象来获取配置的属性值。

 

 

 

git  码云,码云创建一个仓库,gitclone以后本地修改完成 push到git 然后客户端创建完成以后会从服务端的配置中心读取具体的配置内容,以json的形式返回