记录spring、springboot集成apollo配置中心
一, spring集成apollo,前提是apollo配置中心服务端已经在运行中
上面是我在阿里云服务搭建的apollo配置中心服务端,登录后的样子。没有搭建服务端的小伙伴,请先搭建好apollo的服务端
然后点击‘创建项目’,新建测试用的项目
填写类容:
在里面新建测试需要的配置,kay-value格式的
创建/x修改好了,需要发布生效
接下来我们在我们的项目里面配置使用apollo注册中心的里面的配置
在项目的resources里面创建目录‘META-INF’,然后在目录下创建配置文件‘app.properties’,
内容如下:
#自定义的appid名称,区分不同的应用
app.id=20201201
#eureka配置中心地址
apollo.meta=http://139.196.186.76:49006
#启用apollo配置开关
apollo.bootstrap.enabled=true
apollo.bootstrap.eagerLoad.enabled=true
apollo 使用配置的命名空间,多个以逗号分隔
apollo.bootstrap.namespaces = application
然后,在resource文件夹下创建‘apollo-env.properties’配置文件,内容如下:
dev.mate=http://139.196.186.76:49006 #加入apollo在远程服务器上的话,项目在本地测试的话,ip端口需要换成你的apollo远程访问ip+远程开放端口
apollo.autoUpdateInjectedSpringProperties=true
pom 文件添加:
<!--apollo--><dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client</artifactId><version>1.3.0</version></dependency><!-- https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-core --><dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-core</artifactId><version>1.3.0</version></dependency>
在spring项目的 application.xml里面配置apollo:
<apollo:config order="2"/><apollo:config namespaces="application"/><bean id="appPropertyPlaceholderConfigurer"class="cn.glor.monopoly.apollo.config.AppPropertyPlaceholderConfigurer"></bean>
/*** @描述* @创建人 joy_qiu* @创建时间 2020-12-24-18:19* @修改人和其它信息*/
public class AppPropertyPlaceholderConfigurer extends PropertySourcesPlaceholderConfigurer {@Overrideprotected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {try {//从apollo中获取所有配置信息Config config = ConfigService.getAppConfig(); //config instance is singleton for each namespace and is never nullSet<String> fieldnames = config.getPropertyNames();
//遍历配置信息for(String fieldname : fieldnames){String attributeName=fieldname;String attributeValue = config.getProperty(fieldname,"");System.out.println("attributeName:"+attributeName + "; attributeValue:" + attributeValue );props.put(attributeName,attributeValue);}} catch (Exception e) {e.printStackTrace();logger.info("获取apollo配置失败");}super.processProperties(beanFactoryToProcess, props);}
}
然后,在本地的环境是Windows的话需要在c://opt/创建settings 文件夹,Linux 环境是在/opt/settings/下面创建,并在settings文件夹下创建文件server.properties文件,注意 参数 ‘idc’ 是指定集群环境的,应为一般项目会有多个环境:dev,uat,pro等等内容如下:
env=DEV
apollo.meta=http://139.196.186.76:49006
apollo.configService=http://139.196.186.76:49006
#配置idc 表示指定集群的配置,不配置使用default集群 的配置
#idc=dev
然后,编写测试的接口:
然后启动项目,测试接口:
访问接口的结果和apollo服务端的一直,然后我们测试下,修改apollo服务端的参数值,看项目是否可以接受到:
记得修改后,要点击发布才能生效
然后直接访问接口:
测试成功,如果远程的apollo服务停止,会读取本地的缓存配置文件,我们看看配置文件在哪里,apollo默认会在windows环境是在C://opt/data/appid/下面
Linux 环境是在/opt/settings/下面
如果是现有项目要集成apollo的话,可以现有项目的配置文件复制到apollo,如下图点击‘文本’,参数格式就和项目里面的格式一样,直接将原项目的参数复制到文本框里面就好了
点击右上角的对号,提交修改
添加成功,点击发布就可以使用了
springboot集成apollo,比spring集成要简单多了,本地的/opt/settings/下面配置不变,代码请看:https://github.com/qzy-joe/springboot_apollo.git
记录spring、springboot集成apollo配置中心相关推荐
- 一文搞定:SpringBoot 集成 Apollo 配置中心
公众号后台回复"面试",获取精品学习资料 扫描下方海报了解专栏详情 本文来源: http://www.mydlq.club/article/42/ <Java工程师面试突击( ...
- SpringBoot 集成 Apollo 配置中心
目录[-] 目录 一.Kubernetes 部署配置中心 Apollo 二.SpringBoot 集成 Apollo 配置中心 系统环境 SpringBoot 版本:2.1.8.RELEASE Apo ...
- Java项目集成apollo,SpringBoot集成Apollo配置中心
准备工作 本文假设读者已经在本地部署Apollo配置中心,如还未部署可参考之前的文章 <Docker部署Apollo配置中心> 文章将引导在Docker中运行Apollo配置中心.在开始使 ...
- Spring Boot 集成 Apollo 配置中心,真香、真强大!
作者:超级小豆丁 来源:http://www.mydlq.club/article/42/ 由于 Apollo 概念比较多,刚开始使用比较复杂,最好先过一遍概念再动手实践尝试使用. 1.背景 随着程序 ...
- 一文搞定,SpringBoot 集成 Apollo 配置中心
原文: http://www.mydlq.club/article/42/ 1.背景 随着程序功能的日益复杂,程序的配置日益增多,各种功能的开关.参数的配置.服务器的地址--对程序配置的期望值也越来 ...
- SpringBoot整合Apollo配置中心快速使用
一.简介 1.Apollo 是什么?Apollo(阿波罗)是携程框架部门研发的分布式配置中心.服务端基于Spring Boot和Spring Cloud开发. 2.为什么要使用Apollo? 安全性: ...
- SpringBoot快速集成Apollo配置中心
1.引入依赖 <dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId> ...
- Apollo配置中心介绍,多环境,分布式等
参考: Apollo Apollo 玩转apollo配置中心--通过源码进行多env环境搭建 - swing·wang - 博客园 一.Apollo(配置中心) Apollo(阿波罗)是携程框架部门研 ...
- 微服务中集成分布式配置中心 Apollo
背景 随着业务的发展.微服务架构的升级,服务的数量.程序的配置日益增多(各种微服务.各种服务器地址.各种参数),传统的配置文件方式和数据库的方式已无法满足开发人员对配置管理的要求:配置修改后实时生效, ...
最新文章
- elon函数_Neuroink Elon麝香制造中的灾难
- 二十四、爬取古诗网中的100首古诗文
- datetime模块日期转换和列表sorted排序
- java算法之冒泡排序
- Springcloud整理
- maven 引入外部jar包的几种方式
- 关于python的保留字_Python中的保留字
- linux服务器分区方案
- java中的final关键字(2013-10-11-163 写的日志迁移
- pro* c调用存储过程 linux,Pro*C调用存储过程,存储过程名称如何传递? 高分求高手指点。。。...
- 如何用latex高效写毕业论文(超简明+实用经验分享)
- THREE实战2_正交投影相机与透视相机
- 医保卡不用填写也可以报销的医院(A类定点医疗机构)
- 登录微软账户后远程桌面连接提示用户名错误
- Java实现图片压缩且不改变原图尺寸
- 问题 B: 道路建设 (Ver. I)
- 开源好物分享!文档在线预览平台
- 【python】根据文件(图片)名字,删除符合条件的文件(图片)
- java解决行驶证识别问题
- 决策树模型回归可视化分析_商业分析过程与数据探索
热门文章
- scala 转换为字符串_如何在Scala中将字符串转换为布尔值?
- 爱了!蚂蚁开源的“SpringBoot”框架,新增了这6项功能...
- 经典面试题|讲一讲JVM的组成
- 全志A20 刷入Ubuntu/Debian Linux固件 亲测能用
- Maven多模块打包
- pythonpptx 楷体_python-pptx 实践 4:添加形状、文本
- Ubuntu 下PySpark安装
- lfu算法实现java_LFU五种实现方式,从简单到复杂
- 存储管理实验linux,07-存储管理器实验
- java源代码实例倒计时_Java倒计时三种实现方式代码实例