博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud Config客户端
阅读量:4457 次
发布时间:2019-06-08

本文共 3357 字,大约阅读时间需要 11 分钟。

 

1、导入依赖

org.springframework.cloud
spring-cloud-starter-config

 

2、配置bootstrap.yml文件,连接到config服务端

#注意config-client的配置需要放到bootstrap.yml中management:  security:    enabled: falsespring:  application:    name: mima-cloud-config-client  cloud:    consul:      discovery:         instanceId: ${spring.application.name}:${server.port}      host: localhost      port: 8500      config:        enabled: true #false\u7981\u7528Consul\u914d\u7f6e\uff0c\u9ed8\u8ba4true        format: YAML    # \u8868\u793aconsul\u4e0a\u9762\u6587\u4ef6\u7684\u683c\u5f0f \u6709\u56db\u79cd YAML PROPERTIES KEY-VALUE FILES        #data-key: configuration    #\u8868\u793aconsul\u4e0a\u9762\u7684KEY\u503c(\u6216\u8005\u8bf4\u6587\u4ef6\u7684\u540d\u5b57) \u9ed8\u8ba4\u662fdata        data-key: data    #\u8868\u793aconsul\u4e0a\u9762\u7684KEY\u503c(\u6216\u8005\u8bf4\u6587\u4ef6\u7684\u540d\u5b57) \u9ed8\u8ba4\u662fdata        #prefix\u8bbe\u7f6e\u914d\u7f6e\u503c\u7684\u57fa\u672c\u6587\u4ef6\u5939        #defaultContext\u8bbe\u7f6e\u6240\u6709\u5e94\u7528\u7a0b\u5e8f\u4f7f\u7528\u7684\u6587\u4ef6\u5939\u540d\u79f0        #profileSeparator\u8bbe\u7f6e\u7528\u4e8e\u4f7f\u7528\u914d\u7f6e\u6587\u4ef6\u5728\u5c5e\u6027\u6e90\u4e2d\u5206\u9694\u914d\u7f6e\u6587\u4ef6\u540d\u79f0\u7684\u5206\u9694\u7b26\u7684\u503c     config:      #安全认证设置用户名密码      uri: http://localhost:6063/ #config-server访问地址      #指定profile,对应config-server所获取的配置文件中的{profile}      #配置文件的几种写法      #{application}-{profile}.yml      #{application}-{profile}.properties      #{application}/{profile}.yml      profile: prod #相当于在远程git项目找到application-prod.properties文件      label: master

 

3、使用@Value注解

import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/** * 这边的@RefreshScope注解不能少,否则即使调用/refresh,配置也不会刷新 */@RestController@RefreshScopepublic class ConfigClientController {    @Value("${env}")    private String env;        @Value("${password}")    private String password;        @Value("${username}")    private String username;    @GetMapping("/config/profile")    public String hello() {        return this.env+","+this.password+","+this.username;    }}

 

4、application.properties 和 bootstrap.yml 区别

4.1、首先yml和properties文件都是属于配置文件,功能一样。主要区别于application和bootstrap的加载顺序。

Bootstrap.yml(bootstrap.properties)在application.yml(application.properties)之前加载,就像application.yml一样,但是用于应用程序上下文的引导阶段。

4.2、典型场景

a.当使用 Spring Cloud Config Server的时候,你应该在 bootstrap.yml 里面指定 spring.application.name和 spring.cloud.config.server.git.uri
b.一些加密/解密的信息

技术上,bootstrap.yml由父Spring ApplicationContext加载。父ApplicationContext被加载到使用application.yml的之前。

当使用 Spring Cloud 的时候,配置信息一般是从 config server 加载的,为了取得配置信息(比如密码等),你需要一些提早的或引导配置。因此,把 config server 信息放在 bootstrap.yml,用来加载真正需要的配置信息。

4.3、属性覆盖问题

启动上下文时,Spring Cloud会创建一个Bootstrap Context,作为Spring应用的Application Context的父上下文。初始化的时候,Bootstrap Context负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的Environment。Bootstrap属性有高优先级,默认情况下,它们不会被本地配置覆盖。 Bootstrap context和Application Context有着不同的约定,所以新增了一个bootstrap.yml文件,而不是使用application.yml (或者application.properties)。保证Bootstrap Context和Application Context配置的分离。

转载于:https://www.cnblogs.com/linjiqin/p/10335796.html

你可能感兴趣的文章
ASP。net 测验
查看>>
java开发环境搭建-慕课网
查看>>
NOIP2015-D2T3运输计划
查看>>
Z :彻底了解指针数组,数组指针以及函数指针 [复
查看>>
用的好好的,Cygwin变的不好用了。
查看>>
2013年终总结
查看>>
在IIS中部署.net core应用
查看>>
hihocoder编程练习赛52-3 部门聚会
查看>>
Start to study Introduction to Algorithms
查看>>
AE常见接口之间的关系(较笼统)+arcgis常见概念
查看>>
正则表达式
查看>>
三元操作设计不同类型的时候,最终结果的问题
查看>>
POJ 1661 Help Jimmy LIS DP
查看>>
大数据时代,我诚惶诚恐的拥抱
查看>>
c++小游戏——五子棋
查看>>
浏览器全屏非全屏切换
查看>>
2.CSS 颜色代码大全
查看>>
Native与H5交互的一些解决方法
查看>>
三、基于hadoop的nginx访问日志分析--计算时刻pv
查看>>
SpringCloud Config客户端
查看>>