引入disconf配置

将disconf.properties和disconf_sys.properties与disconf配置中心相关的jar包放进tomcat的conf文件目录。

disconf.properties

  1. # 是否使用远程配置文件
  2. # true(默认)会从远程获取配置 false则直接获取本地配置
  3. enable.remote.conf=true
  4. #
  5. # 配置服务器的 HOST,用逗号分隔 127.0.0.1:8000,127.0.0.1:8000
  6. #
  7. conf_server_host=127.0.0.1:8080
  8. # 版本, 请采用 X_X_X_X 格式
  9. version=1_0_0_0
  10. # APP 请采用 产品线_服务名 格式
  11. app=disconf_demo
  12. # 环境
  13. env=rd
  14. # debug
  15. debug=true
  16. # 忽略哪些分布式配置,用逗号分隔
  17. ignore=
  18. # 获取远程配置 重试次数,默认是3
  19. conf_server_url_retry_times=1
  20. # 获取远程配置 重试时休眠时间,默认是5
  21. conf_server_url_retry_sleep_seconds=1

项目中使用

xml配置文机使用

在spring的xml配置文件中引入disconfMgrBean、disconfMgrBean2


  1. <context:component-scan base-package="com.baidu" />
  2. <aop:aspectj-autoproxy proxy-target-class="true" />
  3. <!-- 打开Spring的Annotation支持 -->
  4. <context:annotation-config />
  5. <!-- 使用disconf必须添加以下配置 -->
  6. <bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean" destroy-method="destroy">
  7. <property name="scanPackage" value="com.baidu.disconf" />
  8. </bean>
  9. <bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond"
  10. init-method="init" destroy-method="destroy">
  11. </bean>
  12. <!--配置文件式:
  13. 如何将原本spring管理的配置文件交给disconf来管理:
  14. 需要将原本托管给spring容器的配置文件替换成如下代码:
  15. 使用托管方式的disconf配置(无代码侵入, 配置更改自动reload) -->
  16. <bean id="configproperties_disconf"
  17. class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean">
  18. <property name="locations">
  19. <list>
  20. <value>classpath:log4j.properties</value>
  21. <value>classpath:test.properties</value>
  22. </list>
  23. </property>
  24. </bean>
  25. <bean id="propertyConfigurer_disconf"
  26. class="com.baidu.disconf.client.addons.properties.ReloadingPropertyPlaceholderConfigurer">
  27. <property name="ignoreResourceNotFound" value="true" />
  28. <property name="ignoreUnresolvablePlaceholders" value="true" />
  29. <property name="propertiesArray">
  30. <list>
  31. <ref bean="configproperties_disconf" />
  32. </list>
  33. </property>
  34. </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;
    }
}