apollo应用配置集成及使用
apollo应用配置集成及使用
1. 开发环境Apollo地址
用户名:apollo 密码:admin
开发环境Apollo管理台地址:http://localhost:8070/
开发环境Apollo Eureka地址:http://localhost:8080/
2. pom.xml引用客户端
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.0</version>
</dependency>
3. springboot项目集成
- properties配置:
//配置唯一appid既项目创建时的唯一id
app.id=110000001
//指定配置中心Eureka地址既metaservice
apollo.meta=@apollo.meta.service@
//启动的bootstrap阶段,向Spring容器注入
apollo.bootstrap.enabled = true
//指定该项目关联的相关作用域
apollo.bootstrap.namespaces=application,TEST1.jdbc,部门.作用域
4. spring项目集成
创建/META-INF/app.properties 内容app.id=110000001
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:apollo="http://www.ctrip.com/schema/apollo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.ctrip.com/schema/apollo http://www.ctrip.com/schema/apollo.xsd">
<!-- application 的优先级别 -->
<apollo:config order="2"/>
<!-- 这个是最复杂的配置形式,指示Apollo注入TEST1.jdbc和TEST1.xxljob namespace的配置到Spring环境中,并且顺序在application前面 -->
<apollo:config namespaces="TEST1.xxljob,TEST1.jdbc" order="1"/>
</beans>
5. 使用及应用
//=========== springboot start ===========
// 启动类加上
@Configuration
@EnableApolloConfig
//=========== springboot end ===========
//=========== start ===========
// 获取注入某个作用域的配置
// 如TEST1.jdbc
@ApolloConfig("部门.作用域")
private Config config;
// 获取某个值
@Value("${key}")
private String value;
// 监听多个或单个作用域
@ApolloConfigChangeListener({"application", "TEST1.jdbc"})
private void anotherOnChange(ConfigChangeEvent changeEvent) {
System.out.println("===================");
// 获取key为test的change属性 包括新值老值等
ConfigChange change = changeEvent.getChange("test");
System.out.println(String.format("Found change - key: %s, oldValue: %s,"
+ " newValue: %s, changeType: %s", change.getPropertyName(), change.getOldValue(), change.getNewValue(), change.getChangeType()));
System.out.println("===================");
}
//监听所有作用域
@ApolloConfigChangeListener
private void someOnChange(ConfigChangeEvent changeEvent) {
//如果值发生修改了 获取属性
if (changeEvent.isChanged("batch")) {
batch = config.getIntProperty("batch", 100);
}
}
//获取指定类型属性
public int getTimeout() {
return config.getIntProperty("timeout", 200);
}
//=========== end ===========
6. 注意项
- XXXXXXConfigurer类 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer如使用以上类请替换成org.springframework.context.support.PropertySourcesPlaceholderConfigurer。
另外Spring 3.1以后就不建议使用PropertyPlaceholderConfigurer了,要改用PropertySourcesPlaceholderConfigurer。
- 多环境eureka地址动态切换
1. VM options修改eureka地址
-apollo.meta.service=XXXXX.XXX.XXX
2. 使用maven profile
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<apollo.meta.service> http://localhost:8080 </apollo.meta.service>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<apollo.meta.service> http://devhost:38080 </apollo.meta.service>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<apollo.meta.service> http://prohost:38080 </apollo.meta.service>
</properties>
</profile>
</profiles>
apollo应用配置集成及使用的更多相关文章
- apollo 项目配置中心开源框架部署
apollo 于我带来的好处 1. 项目之前的配置信息全部都在 resources 目录下,当然这里我使用的是 Spring Boot 搭建的项目.使用 apollo 后,配置信息全部转移到 apol ...
- springboot集成Apollo分布式配置
安装Apollo服务 1.安装mysql 地址:https://www.cnblogs.com/xuaa/p/10782352.html 2.下载Apollo源码到本地 地址:https://gith ...
- 携程Apollo统一配置中心的搭建和使用
原文链接:https://blog.csdn.net/luhong327/article/details/81453001 一.Apollo配置中心介绍 1.What is Apollo 1.1 Ap ...
- 携程阿波罗(Apollo)配置中心
携程阿波罗(Apollo) https://www.cnblogs.com/xiaxiaolu/p/10025597.html 一.瞎扯点什么 1.1 阿波罗 阿波罗是希腊神话中的光明之神.文艺之 ...
- python访问Apollo获取配置
操作系统 : CentOS7.3.1611_x64 Python 版本 : 3.6.8 Apollo源码地址: https://github.com/ctripcorp/apollo 访问Apollo ...
- netcore项目中使用 SpringCloudConfig 和apollo做配置中心
版权所有,转载请注明出处 https://www.cnblogs.com/netqq/p/14251403.html 一.使用apollo作为配置中心 首先apollo 项目简介和安装请自行百度,本文 ...
- Apollo 中配置String、Map和List和默认值
摘要:在Apollo 中,配置String.Map和List等类型的信息,同时设置默认值. 综述 随着业务需求的变更,需要在Apollo中配置一个Map<String, List>类型 ...
- apollo与springboot集成实现动态刷新配置
分布式apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性. 本 ...
- 携程apollo系列-客户端集成
本文讲解如何在 Java 程序中集成 Apollo 配置, 主要涉及到一些基础用法. 对于一些高级用法, 比如如何加密/解密配置项 (可用于数据库密码配置), 如何动态切换数据源地址,如何动态切换日志 ...
随机推荐
- Java反射API研究(4)——Class中的重要对象
一.Constructor与Method的父类:Executable Executable表示一个可执行类,构造方法与普通方法都是Executable AnnotatedType[] getAnnot ...
- Git Note - Branch
1. add a new branch cd workspace git branch user1/newbranch1 git checkout user1/newbranch1 or git ch ...
- 【转发】在SQL Server中通过字段值查询存储该字段的表
-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved. -- Purpose: To search all colu ...
- jsp int转String or String转int 方法
将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([St ...
- WPF 平板上按钮点击不触发,鼠标点击触发的两种解决方法
今天运行在windows平板上的程序,有个功能是弹出子窗体,点弹出窗体的关闭按钮,要点好几次才能触发.网上找了找,也有人与我类似的情形. 解决方法如下: public static void Disa ...
- UWP开发入门(七)——下拉刷新
本篇意在给这几天Win10 Mobile负面新闻不断的某软洗地,想要证明实现一个简单的下拉刷新并不困难.UWP开发更大的困难在于懒惰,缺乏学习的意愿.而不是“某软连下拉刷新控件都没有”这样的想法. 之 ...
- mysql--多表连接查询
一.多表连接查询 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段 = 表2.字段; 1.交叉连接:不适用任何匹配条件.生成笛卡尔积 sele ...
- 视频video遇到一些坑
1.video层级最高问题 解决方案思路:当点击其他按钮触发事件时,视频层级挡住其他外层,比如会挡住弹窗,这是应该让视频暂停播放且隐藏,这是视频这个地方会空一个位置可以放一张封面占位,这样就解决视频层 ...
- java实际项目中interface和abstract interface 区别
参考:https://zhidao.baidu.com/question/424485344260391052.html 这2种有什么区别,根据实际项目经验 帮我解答下 谢谢啊~~~~~~~~~问题补 ...
- 【timeisprecious】【JavaScript 】JavaScript RegExp 对象
JavaScript>RegExp正则表达式 1 .From Runnob JavaScript RegExp 对象(概览) JavaScript RegExp 对象(教程) RegExp 对象 ...