引入disconf配置
将disconf.properties和disconf_sys.properties与disconf配置中心相关的jar包放进tomcat的conf文件目录。
disconf.properties
# 是否使用远程配置文件# true(默认)会从远程获取配置 false则直接获取本地配置enable.remote.conf=true## 配置服务器的 HOST,用逗号分隔 127.0.0.1:8000,127.0.0.1:8000#conf_server_host=127.0.0.1:8080# 版本, 请采用 X_X_X_X 格式version=1_0_0_0# APP 请采用 产品线_服务名 格式app=disconf_demo# 环境env=rd# debugdebug=true# 忽略哪些分布式配置,用逗号分隔ignore=# 获取远程配置 重试次数,默认是3次conf_server_url_retry_times=1# 获取远程配置 重试时休眠时间,默认是5秒conf_server_url_retry_sleep_seconds=1
项目中使用
xml配置文机使用
在spring的xml配置文件中引入disconfMgrBean、disconfMgrBean2
<context:component-scan base-package="com.baidu" /><aop:aspectj-autoproxy proxy-target-class="true" /><!-- 打开Spring的Annotation支持 --><context:annotation-config /><!-- 使用disconf必须添加以下配置 --><bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean" destroy-method="destroy"><property name="scanPackage" value="com.baidu.disconf" /></bean><bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond"init-method="init" destroy-method="destroy"></bean><!--配置文件式:如何将原本spring管理的配置文件交给disconf来管理:需要将原本托管给spring容器的配置文件替换成如下代码:使用托管方式的disconf配置(无代码侵入, 配置更改自动reload) --><bean id="configproperties_disconf"class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean"><property name="locations"><list><value>classpath:log4j.properties</value><value>classpath:test.properties</value></list></property></bean><bean id="propertyConfigurer_disconf"class="com.baidu.disconf.client.addons.properties.ReloadingPropertyPlaceholderConfigurer"><property name="ignoreResourceNotFound" value="true" /><property name="ignoreUnresolvablePlaceholders" value="true" /><property name="propertiesArray"><list><ref bean="configproperties_disconf" /></list></property></bean>
使用注解
配置文件
<!-- 使用disconf必须添加以下配置 -->
<bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean"
destroy-method="destroy">
<property name="scanPackage" value="com.example.disconf.demo"/>
</bean>
<bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond"
init-method="init" destroy-method="destroy">
</bean>
注解
package com.example.disconf.demo.config;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import com.baidu.disconf.client.common.annotations.DisconfFile;
import com.baidu.disconf.client.common.annotations.DisconfFileItem;
/**
* Redis配置文件
*
* @author liaoqiqi
* @version 2014-6-17
*/
@Service
@Scope("singleton")
@DisconfFile(filename = "redis.properties")
public class JedisConfig {
// 代表连接地址
private String host;
// 代表连接port
private int port;
/**
* 地址, 分布式文件配置
*
* @return
*/
@DisconfFileItem(name = "redis.host", associateField = "host")
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
/**
* 端口, 分布式文件配置
*
* @return
*/
@DisconfFileItem(name = "redis.port", associateField = "port")
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
