springCloud - 第7篇 - 配置文件管理中心 ( SpringCloud Config )

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

一、简介

分布式的系统往往有多个服务,会有不同的配置文件。

不同环境配置文件内容也各不相同: 开发环境、测试环境、生产环境。

为了方便管理数目众多的配置文件,springcloud 有对应的配置文件管理:spring cloud config 。

在此组件中主要有 2 种 角色:config server  配置文件管理中心 、

                                              config client  从 config server 中读取真正需要的配置信息 。

配置文件支持放在本地,也支持放在远程 Git 仓库中 。

二、重用此系列工程的父 pom 工程 springcloud-base。

在其 pom 中加上依赖:

        <!--配置文件管理--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency>

新建文件夹 config , 并设置相应配置内容:

config-client-pro.properties :

version = pro -1.1.1.11- FZW -1.1.1

config-client-test.properties :

version =  test-2.2.2.22

config-client-dev.properties :

version = dev-0.0.0.DEV-0.0.0

三、 新建 config-server 工程

1. file - new - module 

2. spring Initializr - module SDK 选择自己的 JDK ,其余的可以不用填写,next。

3. 填写工程相关信息:包名、工程名等,next。

4. spring cloud config- 勾选 config server,next。

5. 工程名,代码存放位置等,finish 。

6. 工程结构如下:

7. pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.config</groupId><artifactId>config-server</artifactId><version>0.0.1-SNAPSHOT</version><name>config-server</name><description>配置文件管理 server</description><parent><groupId>com.base</groupId><artifactId>base-config</artifactId><version>0.0.1-SNAPSHOT</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency></dependencies></project>

8. 在工程启动类上加注解:@EnableConfigServer  ,开启配置文件管理服务功能 。

package com.config.configserver;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;@SpringBootApplication// 配置文件管理
@EnableConfigServer
public class ConfigServerApplication {public static void main(String[] args) {SpringApplication.run(ConfigServerApplication.class, args);}}

9. 配置文件中设置:

读取的是 springcloud-base工程中新增的 config 文件夹下的配置文件信息。

# 工程名
spring.application.name=config-server# 端口
server.port=3333# git仓库地址
spring.cloud.config.server.git.uri=https://gitee.com/FJ_WoMenDeShiJie/springcloud-base.git# 仓库路径
spring.cloud.config.server.git.searchPaths=config# 仓库分支
spring.cloud.config.label=master# git仓库用户名 ( 公开库-可不填 )
spring.cloud.config.server.git.username=# git仓库密码 ( 公开库-可不填 )
spring.cloud.config.server.git.password=

10. 启动工程访问:http://localhost:3333/这里随便写/dev

表示访问远程仓库中的配置文件成功 。访问路径最后的  dev  在此测试时也可任意写。

四、 新建 config-client 工程

1. file - new - module 

2. spring Initializr - module SDK 选择自己的 JDK ,其余的可以不用填写,next。

3. 填写工程相关信息:包名、工程名等,next。

4. spring cloud config- 勾选 config client,next。

5. 工程名,代码存放位置等,finish 。

6. 工程结构如下:

7. pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.config</groupId><artifactId>config-client</artifactId><version>0.0.1-SNAPSHOT</version><name>config-client</name><description>配置文件管理 client</description><parent><groupId>com.base</groupId><artifactId>base-config</artifactId><version>0.0.1-SNAPSHOT</version></parent><dependencies><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></dependencies></project>

8. 在工程启动类上加注解:@RestController , 书写 getVersion 方法,提供对外访问。

package com.config.configclient;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@SpringBootApplication
public class ConfigClientApplication {public static void main(String[] args) {SpringApplication.run(ConfigClientApplication.class, args);}@Value("${version}")String version;@RequestMapping(value = "/getVersion")public String getVersion() {return version;}/*** 增加此方法用以解决报错:Could not resolve placeholder 'version' in value "${version}"* @return*/@Beanpublic static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {PropertySourcesPlaceholderConfigurer c = new PropertySourcesPlaceholderConfigurer();c.setIgnoreUnresolvablePlaceholders(true);return c;}}

9. 配置文件设置:  注意此配置文件的名字是: bootstrap.properties 。

叫这个名字的原因:官方指定优先读取此文件,bootstrap 在 application 之前加载 。

# 项目名
spring.application.name=config-client# 端口
server.port=4444# 仓库分支
spring.cloud.config.label=master# 读取文件:dev开发环境、test测试、pro生产
spring.cloud.config.profile=test# 配置文件管理服务 config-server 地址
spring.cloud.config.uri=http://localhost:3333/

此时设置为读取 springcloud-base中的 配置文件 :config-client-test.properties

10. 启动工程访问:http://localhost:4444/getVersion

修改配置文件中访问的文件:

此时设置为读取 springcloud-base中的 配置文件 :config-client-dev.properties

重启工程访问:http://localhost:4444/getVersion

至此,config-server 从远程仓库读取配置文件成功。 config-client 通过 config-server 读取配置文件中的具体信息值也成功了。

在 config-client 配置文件中可通过修改 spring.cloud.config.profile 选项来设定读取不同的配置文件 。

-------------------------------------------------------------

下一篇:springCloud - 第8篇 - 配置文件管理中心 - 集群模式(负载匀衡)使用

源码见:https://gitee.com/FJ_WoMenDeShiJie/springcloud-base

https://gitee.com/FJ_WoMenDeShiJie/springcloud-config-server

https://gitee.com/FJ_WoMenDeShiJie/springcloud-config-client

-------------------------------------------------------------

PS:这个系列不定时更新,只是个人的学习分享,

内容全程参考书目:

《Spring Cloud 与 Docker 微服务架构空实战 》、

《Spring Cloud 微服务实战》及此书作者博客:http://blog.didispace.com/spring-cloud-learning/

《深入理解 Spring Cloud 与微服务构建》及此书作者博客:https://blog.csdn.net/forezp/article/details/70148833
--------------------------------------------------------------


以下出自:https://blog.csdn.net/forezp/article/details/81041028

config-server 启动成功后,访问路径映射方式有以下几种:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成功必读本:培养人脉的106个技巧

成功的道路上&#xff0c;人脉比知识更重要。发展人际关系应当是你优先级最高的事。《不要一个人吃饭( Never Eat Alone)》一书介绍了21世纪的交际规则。书中包括了许多实用技巧&#xff0c;让你通过人际关系而兴旺发达。 保留精华&#xff0c;以下是从书中总结的106条技巧。在…

springCloud - 第8篇 - 配置文件管理中心 - 集群模式(负载匀衡)使用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 当微服务系统中 应用服务有很多时&#xff08;serviceA 、serviceB ...&#xff09;&#xff0c;会都从同一个配置中心读取配置文件。此…

程序员的11个阶段

程序员的职业生涯是一段充满起伏的有趣经历。考虑到其陡峭的学习曲线&#xff0c;完全可以预见你将经历挫折、启蒙、骄傲自大这几个时期&#xff0c;以及穿插其间的各种心路历程。在这篇文章中让我们轻松一下&#xff0c;通过一系列搞笑 gif 图来回顾其中的每一个阶段 。 阶段…

Docker 方式安装 RabbitMQ (ribbitmq linux 部署)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 查找镜像&#xff1a;&#xff08;management 版本的镜像才有管理界面&#xff09; docker search rabbitmq:management2. 拉取镜像…

中国股市6000点下跌创最大熊市 股民因贪欲被套牢

核心提示&#xff1a;人的欲望&#xff0c;他的那个欲望&#xff0c;他永远在那个&#xff0c;你看涨了40我都不卖&#xff0c;还贪&#xff0c;还得到45&#xff0c;还贪。贪贪没有完&#xff0c;跌到35了&#xff0c;35还觉得还能回去&#xff0c;跌30了。 凤凰卫视5月14日《…

解决:c.r.c.impl.ForgivingExceptionHandler : An unexpected connection driver error occured

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 我的情况&#xff1a; 在个人阿里云服务器上 docker 方式 安装的 RabbitMQ&#xff0c;然后本地代码连接一直报错&#xff1a; 201…

中国股市低迷的根本原因

和讯网友“长江荐股”发文探讨中国股市低迷的根本原因&#xff0c;我深表认同&#xff0c;特转载于下&#xff1a; 1、当年股市为国企扭亏服务&#xff0c;给投资者埋下了后遗症。1998年政府为了实现国企3年扭亏的目标&#xff0c;要求一家优质企业捆绑一家亏损企业一起上市&am…

解决:springcloud eureka 注册的服务config-client 状态Status:UNKNOWN (1)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. eureka 注册的服务config-client 的 Status 显示为&#xff1a;UNKNOWN (1)&#xff1a; 2.原因 &#xff1a; 配置信息 eureka.cl…

穷人靠力,富人借力!看完你将明白一切!

有个穷人&#xff0c;因为吃不饱穿不暖&#xff0c;而在佛祖面前痛哭流涕&#xff0c;诉说生活的艰苦&#xff0c;天天干活累的半死却挣不来几个钱。 哭了半晌他突然开始埋怨道&#xff1a;“这个社会太不公平了&#xff0c;为什么富人天天悠闲自在&#xff0c;而穷人就应该天…

解决:springcloud 启动 config-client 报错:... .integration.config.HandlerMethodArgumentResolversHolder

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. springcloud 启动 config-client 报错&#xff1a; java.lang.ClassNotFoundException: org.springframework.integration.config.…

美国华裔科学家谈免疫系统真相!运动,心情胜过一切药品!

寻找疾病的真正病因 1928年&#xff0c;抗生素诞生了&#xff0c;我们向世人宣称能够控制所有感染性的疾病。但我们没有想到&#xff0c;抗生素会给人类带来一系列疾病。过去&#xff0c;医学人员认为是病毒、细菌制造了疾病。但是现代研究发现&#xff0c;有10&#xff05;的病…

解决:RabbitMQ 连接报错:amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. springcloud 工程中 config-client 中使用到 RabbitMQ ,启动工程报错&#xff1a; org.springframework.amqp.AmqpConnectException…

中国股市下跌的秘密

价值投资似乎是股市投资中的不二法则。 但是价值投资的拥趸者近期遇到无数的疑惑&#xff0c;众多公司股价跌破净资产仍然无法止跌&#xff0c;而低至五倍市盈率的银行股无人问津&#xff0c;尽管监管层越位充当了市场的评论员&#xff0c;公开宣称蓝筹股投资价值不菲&#xff…

springCloud - 第9篇 - 同步配置文件(消息总线方式)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、 微服务系统中有多个服务应用&#xff0c;也会有多个配置文件。此时也可用 springcloud bus 来实现对配置文件的管理。 PS&#xf…

过度扩容 A股“虚胖”

新股扩容每周5到8家&#xff0c;再融资和大小非减持不断&#xff0c;新三板预计今年推出&#xff0c;国际板开始预热……扩容“大跃进”已成为A股市场难以承受之重。数据显示&#xff0c;目前上证指数不到2500点&#xff0c;与最高点相比已跌去了六成&#xff1b;而如果以流通市…

Docker 方式安装 zipkin (linux 、阿里云ECS上安装)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 查镜像&#xff1a; docker search zipkin2. 拉取镜像&#xff1a;&#xff08;不写明版本号时&#xff0c;默认使用最新版本&#…

京东上市了,员工有多少股票? .

近期中国互联网公司接二连三在美国上市&#xff0c;媒体自媒体们也都跟跟打了鸡血一样&#xff0c;每一篇文章都不忘提及该公司创始人现在身价是多少&#xff0c;这些财富故事读起来很刺激&#xff0c;不过背后&#xff0c;虽说不是「一将功成万骨枯」&#xff0c;却也多了不少…

springCloud - 第10篇 - 服务间调用追踪 (zipkin 的使用)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、 在微服务系统中&#xff0c;不同应用服务可能会有各种不同的相互调用 。 springcloud 集成了 zipkin 来实现对于不同服务调用的追踪…

广东48.6万人资产超600万 华东超600万人群最多

中国有290万人资产超600万元 6.7万人资产过亿 个人资产600万元以上有290万人 亿万资产以上的人有6.7万人 胡润研究院昨天发布的《2014中国高净值人群心灵投资白皮书》&#xff08;以下简称《白皮书》&#xff09;显示&#xff0c;截至2013年年底&#xff0c;全国个人资产600…

Idea 同一工程根据不同配置文件启动、idea 同一工程多实例同时运行

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、需求&#xff1a;有一个 eureka 工程&#xff0c;有2个配置文件。需要根据不同的配置文件启动 2 次&#xff0c;并保证 2 个实例同时…