SpringBoot2 Spring Cloud consul 分布式配置中心使用教程
目录
- 环境说明
- consul 安装与启动
- 手册
- 创建测试案例
- idea 创建SpringBoot2 Spring Cloud consul 案例
- pom.xml 完整配置如下
- 入口如下
- Config 类
- 控制器
- 浏览器效果
- 源码
环境说明
java 1.8
idea 2018.x
spring boot 2.0.5
consul 安装与启动
这里使用 docker
https://github.com/foxiswho/docker-nginx-redis-mysql-rocketmq-rabbitmq-zookeeper
下载它.
在
docker-compose.yml
把不需要用到的给注释掉,不 注释掉也不影响
执行如下,
cd dockerdocker-compose up
foxwho.风
手册
Spring Cloud consul 中文手册: https://springcloud.cc/spring-cloud-consul.html
创建测试案例
浏览器访问
http://localhost:8500/ui/dc1/kv
点击create
按钮,创建
config/application,dev/data
内容
config:title: 这是基础,你知道:后面还有一个空格码
如图
依葫芦画瓢,添加的参数如下
config/application/data
#内容是>>>
config:title: 这是所有应用默认配置
config/server-demo,dev/data
#内容是>>>
config:title: 这是dev开发版demo
config/server-demo/data
#内容是>>>
config:title: 这是正式版demo
idea 创建SpringBoot2 Spring Cloud consul 案例
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.foxwho</groupId><artifactId>server-demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>server-demo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Finchley.SR1</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-config</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
入口如下
package com.foxwho.consul.demo001;import com.foxwho.consul.demo001.model.Config;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
@EnableConfigurationProperties({Config.class})//指定配置类
public class ConsulDemo001Application {public static void main(String[] args) {SpringApplication.run(ConsulDemo001Application.class, args);}
}
Config 类
package com.foxwho.consul.demo001.model;import org.springframework.boot.context.properties.ConfigurationProperties;//title要与consul上面的config:下 title写的一样,consul上面可以写多级目录 例如: config: title: 这是标题
//对应bootstrap.yml 中的 config
@ConfigurationProperties(prefix = "config")
public class Config {private String title; //name要与consul上面的title写的一样public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}@Overridepublic String toString() {return "title : ["+title+"] ";}
}
控制器
package com.foxwho.consul.demo001.controller;import com.foxwho.consul.demo001.model.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class DemoController {@Autowiredprivate Config config;@RequestMapping(value = "/getConfig")public String getConfig() {return config.toString();}@RequestMapping(value = "/getTitle")public String getTitle() {return config.getTitle();}
}
浏览器效果
http://localhost:8010/getTitle
源码
https://github.com/foxiswho/spring-boot2-consul-demo
参考
https://blog.csdn.net/expect521/article/details/77151094
https://blog.csdn.net/xiaonuo717/article/details/73289178/
SpringBoot2 Spring Cloud consul 分布式配置中心使用教程相关推荐
- Spring cloud config 分布式配置中心(一) 服务端
作用: 为分布式系统中的基础设施和微服务应用提供外部集中化的配置支持,分客户端和服务端 服务端: 即分布式配置中心,是一个独立的微服务应用,连接配置仓库,为客户端提供一些访问接口,如加密 / 解密信息 ...
- spring cloud -- 5.分布式配置中心(Spring Cloud Config)
此文章是看了方志朋老师的教材自己写的框架demo: 学习spring cloud推荐大家看下方志朋老师的史上最简单的 SpringCloud 教程 | 终章,地址如下: https://blog.cs ...
- 第十二章 Spring Cloud Config 统一配置中心详解
目录 一.配置问题分析及解决方案 1.问题分析 2.解决方案 二.Spring Cloud Config 介绍 1.Spring Cloud Config特性 2.Spring Cloud Confi ...
- Spring Cloud Config的配置中心获取不到最新配置信息的问题
本篇源于Spring Cloud Config的一个问题,但这个问题并非所有人都会遇到.如果您遇到了,那必须得看看这篇,如果没有遇到您也应该看看,防患于未然! 问题描述 之前有朋友提出Spring C ...
- 【Spring Cloud Alibaba】Spring Cloud Alibaba 分布式配置Nacos实践
课程说明 本次课程,你将会学习如下: 使用 Nacos Config 作为 Spring Cloud 分布式配置 使用 Nacos Config 实现 Bean 动态刷新 了解 Nacos Confi ...
- spring clud config分布式配置中心的简单使用
一.spring cloud config简介 微服务架构为什么要用配置中心? 配置的管理问题,没有配置中心的话,多个服务需要多次修改并依次启动,另外我们也希望修改配置后可以实时生效 配置内容的安全性 ...
- Spring Cloud Config 和Spring Cloud Bus实现配置中心
2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud是很多组件的集合,Spring将常用的技术框架进行包装和整合,如mybatis zookeeper r ...
- SpringCloud使用Consul作为配置中心
目录 一.前言 二.初始化配置 三.代码练习 1. 创建cloud-consul-configdemo8007项目 2. 修改配置 3. 添加主启动类 4. 读取配置文件 5. 添加controlle ...
- Spring Cloud入门-Config分布式配置中心(Hoxton版本)
文章目录 Spring Cloud入门系列汇总 摘要 Spring Cloud Config 简介 在Git仓库中准备配置信息 配置仓库目录结构 master分支下的配置信息 dev分支下的配置信息 ...
- Spring Cloud构建微服务架构:分布式配置中心(加密解密)
最近正好想发一篇关于配置中心加密的细节内容,结果发现基础的加密解密居然漏了,所以在这个入门系列中补充一下.后面再更新一下,使用配置中心的一些经验和教训. 在微服务架构中,我们通常都会采用DevOps的 ...
最新文章
- python构建cnn图片匹配_tensorflow搭建cnn人脸识别训练+识别代码(python)
- java怎么写隐藏bug_同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!
- Nature子刊:宏基因组组装基因组实现谱系解析
- 有序标称变量(Categorical Features)编码为数值变量(Continuous Features​​​​​​​)详解及实践
- 【Cocos2d-x】开发实战-Cocos中的字符串、标签和中文乱码
- 函数指针---C/C++中int *f(4)和int (*f)(4)的区别
- vsftpd设置虚拟用户
- python车辆轨迹分析_Ngsim数据集分析与python处理,NGSIM,解析,及
- 插件~Nuget中包与包的依赖关系
- 移动端cube界面设计html,滴滴 Web 移动端组件库 cube-ui 开源
- 2016我的程序员总结
- C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
- 利用根轨迹法进行控制系统的分析和设计
- 华为HMS核心服务全面开放 赋能开发者共筑智慧新生态
- Percona XtraBackup
- Python os 标准库使用
- 通过Properties读取配置文件
- 微信公众号开发--Emoji表情(可用于关注自动回复等)
- 分组背包+树形DP(BY LPX)
- Eureka的自我保护机制
热门文章
- Oracle10g在Win2008R2下因版本无法安装问题的解决
- 【ZZ】神与学霸的区别
- 在emacs里用w3m浏览网页
- poj 3897 Maze Stretching 二分+A*搜索
- 将Excel的数据导入DataGridView中[原创]
- 程序员必知:平凡而又神奇的贝叶斯方法
- requestparam注解_源码剖析@ApiImplicitParam对@RequestParam的required属性的侵入性
- 拓端tecdat|Python用稀疏、高斯随机投影和主成分分析PCA对MNIST手写数字数据进行降维可视化
- 【大数据部落】R语言GAM(广义相加模型)对物业耗电量进行预测
- 《SpringBoot实战》笔记1