原创文章,转载请注明原文章地址,谢谢!
Config客户端配置
首先在repository文件夹下新建文件cloud-config-client.yml文件,添加以下内容。注意要以UTF-8编码格式保存,然后提交并推送至远程。
spring:
profiles:
active:
- dev
---
server:
port: 4001
spring:
profiles: dev
application:
name: cloud-config-client
eureka:
client:
service-url:
defaultZone: http://eureka-dev.com:7001/eureka/
---
server:
port: 4002
spring:
profiles: test
application:
name: cloud-config-client
eureka:
client:
service-url:
defaultZone: http://eureka-test.com:7001/eureka/
新建cloud-config-client-3005模块,添加相关maven依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
添加bootstrap.yml配置文件,内容如下。
spring:
cloud:
config:
name: cloud-config-client
profile: dev
label: master
uri: http://config3001.com:3001
在这里对bootstrap.yml配置文件做简要说明。applicaiton.yml是用户级的资源配置项,bootstrap.yml是系统级的,优先级更加高。SpringCloud会创建一个Bootstrap Context
,作为Spring应用的Application Context
的父上下文。初始化的时候,Bootstrap Context
负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的Environment
。Bootstrap
属性有高优先级,默认情况下,它们不会被本地配置覆盖。Bootstrap context
和Application Context
有着不同的约定,所以新增了一个bootstrap.yml
文件,保证Bootstrap Context
和Application Context
配置的分离。
application.yml
spring:
application:
name: microservicecloud-config-client
需要在本地hosts文件中添加映射关系。
127.0.0.1 config3005.com
我们在客户端写一个Rest类,该类主要是通过Config服务端访问远程库的配置内容。
@RestController
public class HelloController {
@Value("${eureka.client.server-url.defaultZone}")
private String notify;
@RequestMapping("/config")
public String getConfig() {
return notify;
}
}
接下来测试一下,启动config3001配置中心并访问config3001.com:3001/application-dev.yml
启动config-client-3005作为client准备访问。bootstrap.yml里面的profile值是什么,决定从github上读取什么,目前值是dev,访问config3005.com:4001/config
如果bootstrap.yml里面的profile的值是test,就从github上读取test配置,访问config3005.com:4002/config
此时ConfigClient已经成功通过ConfigServer读取到了github上的配置信息。
博客内容仅供自已学习以及学习过程的记录,如有侵权,请联系我删除,谢谢!
网友评论