springboot集成disconf


配置分離的好處在此不多說,具體說下如何使用disconf

1.加入依賴

    <dependency>
          <groupId>com.baidu.disconf</groupId>
          <artifactId>disconf-client</artifactId>
          <version>2.6.36</version>
       </dependency>

2.添加配置文件spring-disconf.xml

這里將application.properties交給disconf管理

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

    <aop:aspectj-autoproxy proxy-target-class="true"/>

    <!-- 使用disconf必須添加以下配置 -->
    <bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean"
          destroy-method="destroy">
        <property name="scanPackage" value="com.sijibao.scfs"/>
    </bean>
    <bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond"
          init-method="init" destroy-method="destroy">
    </bean>



     <!-- 需要托管的配置文件 -->
   <bean id="configproperties_disconf"
      class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean">
      <property name="locations">
         <list>

              <value>application.properties</value>
         </list>
      </property> 
   </bean>

    <bean id="propertyConfigurer"
          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>
</beans>

3.添加disconf.properties

這里需要填服務端地址,應用名,配置環境等

enable.remote.conf=true
conf_server_host=xxx
env=dev
version=1.0
app=xxx
debug=true
ignore=
conf_server_url_retry_times=10
conf_server_url_retry_sleep_seconds=3

4.在啟動類加注解

@ImportResource({"classpath:spring-disconf.xml"})

 

5.登錄discnof服務器建立托管的配置文件

需要注意的是springboot或者spring5集成disconf啟動時會報錯,需要改動源碼

改動點: 
com.baidu.disconf.client.addons.properties.ReloadingPropertyPlaceholderConfigurer第97行:

return super.parseStringValue(buf.toString(), props, visitedPlaceholders);

改為:

return helper.replacePlaceholders(strVal, props);

6.需要注意的是,雖然配置交給disconf托管了。但disconf.properties在開發環境和測試環境,生產環境的配置都不一樣,這樣每次打包的時候還需要修改disconf.properties。為了打包時不需要修改文件,可以將disconf.properties文件外置

在啟動時輸入:

java -Ddisconf.conf=/hao24/config/disconf_open/disconf.properties

如果是tomcat啟動:

tomcat 啟動示例

linux環境在catalina.sh

“if [ $have_tty -eq 1 ]; then"之后增加

JAVA_OPTS=”-Ddisconf.conf=/hao24/config/disconf_open/disconf.properties"

 

window環境 startup.bat第一行

SET CATALINA_OPTS= “-Ddisconf.conf=/hao24/config/disconf_open/disconf.properties”

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM