原文链接:http://blog.csdn.net/jthink_/article/details/50556740
- disconf-web配置
- 在disconf-web上点击新建app创建一个新的app,这里假设app名字为:app_test
- 在disconf-web上点击新建配置文件新建一个配置文件,APP选择刚刚的app_test,版本自定义成:0.0.1,环境可选择local环境,直接选择上传文件,比如我们这里上传dev.properties,内容如下:
disconf.test=disconf_test
- 项目使用
- pom.xml中加入disconf,如下:
<dependency>
由于自己项目需要下载disconf托管的配置文件,所以项目还需要引入httpclient
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
</dependency><dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency> - 准备disconf.properties
# 是否使用远程配置文件
该配置文件需要放在resources根目录下(这点感觉是很奇怪的规定,其实应该可以指定放入到resource目录下的任何位置)
# true(默认)会从远程获取配置 false则直接获取本地配置
enable.remote.conf=true
#
# 配置服务器的 HOST,用逗号分隔 127.0.0.1:8000,127.0.0.1:8000
#
conf_server_host=127.0.0.1:8991
# 版本, 请采用 X_X_X_X 格式
version=0.0.1
# APP 请采用 产品线_服务名 格式
app=app_test
# 环境
env=local
# debug
debug=true
# 忽略哪些分布式配置,用逗号分隔
ignore=
# 获取远程配置 重试次数,默认是3次
conf_server_url_retry_times=1
# 获取远程配置 重试时休眠时间,默认是5秒
conf_server_url_retry_sleep_seconds=1 - 修改applicationContext.xml
在applicationContext.xml中加入如下配置:- 包扫描
<context:component-scan base-package="xxx.xxx.xxx" />
<aop:aspectj-autoproxy proxy-target-class="true" /> -
bean配置
<bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean"
destroy-method="destroy">
<property name="scanPackage" value="upsmart.trans.test"/>
</bean>
<bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond"
init-method="init" destroy-method="destroy">
</bean>
- 包扫描
- 使用示例
java代码如下:
@Service
@DisconfFile(filename = "dev.properties")
public class QueryService {private String disconfTest;@DisconfFileItem(name = "disconf.test", associateField = "disconfTest")
public String getDisconfTest() {
return disconfTest;
}public void setDisconfTest(String disconfTest) {
this.disconfTest = disconfTest;
}这样disconfTest会随着disconf-web中对dev.properties值的修改而修改
- pom.xml中加入disconf,如下:
- 总结
该方法对代码的侵入性太强,不太适合对老项目的变更
参考:https://github.com/knightliao/disconf/wiki
相关推荐
在使用 Disconf 时,我们可以使用注解式的分布式配置文件,以便更方便地使用 Disconf 的功能。 Disconf 是一个功能强大且易用的分布式配置管理系统,可以帮助开发者更方便地管理和维护项目中的配置文件。
# 基于Spring Boot和Disconf的分布式配置管理系统 ## 项目简介 本项目是一个基于Spring Boot框架和Disconf的分布式配置管理系统。...7. 低侵入性或无侵入性通过极少的注解式代码撰写或XML配置,即可实现分布式配置。
4.3、强兼容性:为程序添加了分布式配置注解后,开启Disconf则使用分布式配置;若关闭Disconf则使用本地配置;若开启Disconf后disconf-web不能正常Work,则Disconf使用本地配置。 5、支持配置项多个项目共享,支持...
分布式配置管理系统(Disconf)是一个专注于各种分布式系统配置管理的通用组件和通用平台,提供统一的配置管理服务。Disconf旨在简化分布式系统的配置管理,确保配置的统一管理和动态更新。 ## 项目的主要特性和...
Spring Cloud Config是Spring Cloud全家桶中的一个组件,它主要用于实现分布式系统中的配置管理。在微服务架构下,系统通常被拆分成许多个小的微服务,每个服务都有自己的配置文件。当配置文件频繁更改或不同服务...
Disconf是一款开源的分布式配置中心,它支持多种语言,包括Java、Python等。主要功能有: 1. **集中式管理**:将所有服务的配置文件统一管理,避免了在各个服务中分散配置的不便。 2. **实时更新**:配置变更后,...
在众多开源的分布式配置中心项目中,如淘宝的Diamond和Disconf,Apollo因其功能强大、社区活跃、持续维护以及清晰的文档而受到青睐。它不仅能满足基本的配置管理需求,还提供了丰富的扩展性和灵活性,是微服务架构下...
一个高效、可靠的配置管理中心能够帮助团队更好地管理分布式系统的配置信息,实现配置的动态化、集中化管理,并有效支持不同环境下的灵活配置。本文将对当前市场上热门的几款开源配置中心进行对比分析,旨在为技术...
- **disconf**:通过注解和xml方式支持配置的热更新,具备配置锁定和配置校验能力,但配置更新需要手工触发。 - **Netflix Archaius**:Netflix提供的配置管理库,支持配置的动态更新,能够实现配置的灰度发布。 ...
1. Apollo:携程开源的分布式配置中心,支持配置实时生效、灰度发布、版本管理以及操作审计等功能,提供详尽的文档和API。 2. Disconf:百度开源的配置中心,基于Zookeeper实现实时配置变更通知,简单易用。 3. ...
级联查询一对一对一对多注解配置及xml配置方式;分页处理:传递Page参数或继承Page的对象参数druid数据源连接池;配置druid数据源监视: ehcache二级缓存配置xml注解ftp服务; Excel相关处理; jmx监控MBean测试; ...