disconf实践基于XML的分布式配置文件管理,自动reload
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了disconf实践基于XML的分布式配置文件管理,自动reload相关的知识,希望对你有一定的参考价值。
上一篇介绍了基于xml的非自动reload的分布式配置文件管理,这一篇介绍自动reload的方式(基于disconf实践二)。
1. 修改RedisConfig.java
1 package org.springinaction.weather.config; 2 3 public class RedisConfig { 4 5 private String host; 6 7 private String port; 8 9 public String getHost() { 10 return host; 11 } 12 13 public String getPort() { 14 return port; 15 } 16 17 public void setHost(String host) { 18 this.host = host; 19 } 20 21 public void setPort(String port) { 22 this.port = port; 23 } 24 25 }
2. 新增回调
1 package org.springinaction.weather.config.callback; 2 3 import org.springframework.stereotype.Component; 4 5 import com.baidu.disconf.client.common.annotations.DisconfUpdateService; 6 import com.baidu.disconf.client.common.update.IDisconfUpdate; 7 8 @Component 9 @DisconfUpdateService(confFileKeys = { "redis.properties" }) 10 public class RedisConfigCallback implements IDisconfUpdate { 11 12 @Override 13 public void reload() throws Exception { 14 } 15 16 }
3. 修改spring配置文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 6 http://www.springframework.org/schema/context 7 http://www.springframework.org/schema/context/spring-context-4.3.xsd"> 8 9 <!-- 使用disconf必须添加以下配置 --> 10 <bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean" 11 destroy-method="destroy"> 12 <property name="scanPackage" value="org.springinaction.weather.config" /> 13 </bean> 14 <bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond" 15 init-method="init" destroy-method="destroy"> 16 </bean> 17 18 <!-- 使用托管方式的disconf配置(无代码侵入, 配置更改会自动reload) --> 19 <bean id="configproperties_reloadable_disconf" 20 class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean"> 21 <property name="locations"> 22 <list> 23 <value>redis.properties</value> 24 </list> 25 </property> 26 </bean> 27 28 <bean id="propertyConfigurer" 29 class="com.baidu.disconf.client.addons.properties.ReloadingPropertyPlaceholderConfigurer"> 30 <property name="ignoreResourceNotFound" value="true" /> 31 <property name="ignoreUnresolvablePlaceholders" value="true" /> 32 <property name="propertiesArray"> 33 <list> 34 <ref bean="configproperties_reloadable_disconf" /> 35 </list> 36 </property> 37 </bean> 38 39 <bean id="redisConfig" class="org.springinaction.weather.config.RedisConfig"> 40 <property name="host" value="${redis.host}" /> 41 <property name="port" value="${redis.port}" /> 42 </bean> 43 </beans>
修改之后,在管理端修改redis.properties的配置信息时,应用会自动reload并修改相应的参数。
以上是关于disconf实践基于XML的分布式配置文件管理,自动reload的主要内容,如果未能解决你的问题,请参考以下文章