zoukankan      html  css  js  c++  java
  • 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并修改相应的参数。

  • 相关阅读:
    现代软件工程 第一章 概论 第4题——邓琨
    现代软件工程 第一章 概论 第9题——邓琨
    现代软件工程 第一章 概论 第7题——张星星
    现代软件工程 第一章 概论 第5题——韩婧
    hdu 5821 Ball 贪心(多校)
    hdu 1074 Doing Homework 状压dp
    hdu 1074 Doing Homework 状压dp
    hdu 1069 Monkey and Banana LIS变形
    最长上升子序列的初步学习
    hdu 1024 Max Sum Plus Plus(m段最大子列和)
  • 原文地址:https://www.cnblogs.com/warehouse/p/6885444.html
Copyright © 2011-2022 走看看