Spring MVC 集成disconf讀取properties

1. Jar包導入

使用mave添加jar依賴

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

2.Spring 配置文件

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

    <!-- 使用托管方式的disconf配置(無代碼侵入, 配置更改會自動reload) -->
        <bean id="configproperties_disconf"
        class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean">
        <property name="locations">
            <list>
                <!--多個動態(tài)配置配置在這里-->
                <value>classpath:login-conf.properties</value>
                <value>classpath:page.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>

3.編輯properties文件

properties正常些就好了,這里以login-conf.properties為例。

# 登錄超時時間
loginConfMsg.login.timeout=60
loginConfMsg.login.tokenTimeout=84600

#登錄錯誤次數及對應的鎖定時間,單位s
loginConfMsg.login.firstErrorCount=5
loginConfMsg.login.firstLockTime=600
loginConfMsg.login.secondErrorCount=10
loginConfMsg.login.secondLockTime=3600
loginConfMsg.login.thirdErrorCount=15
loginConfMsg.login.thirdLockTime=7200
loginConfMsg.login.lastErrorCount=16

4.使用Spring注解@Value

Spring提供@Value注解來讀取properties文件,并將值注入到對象屬性中。
方式為@Value("#{configproperties_disconf[key]}"),其中configproperties_disconf為Spring 配置文件中的用于裝在properties文件的beanId


image.png

將login-conf.properties文件所需屬性注入到LoginConfMsg 中:

@Repository
public class LoginConfMsg {

   @Value("#{configproperties_disconf['loginConfMsg.login.timeout']}")
   public String loginTimeout;
   @Value("#{configproperties_disconf['loginConfMsg.login.tokenTimeout']}")
   public String loginTokenTimeout;
   
   public String getLoginTimeout() {
       return loginTimeout;
   }

   public void setLoginTimeout(String loginTimeout) {
       this.loginTimeout = loginTimeout;
   }

   public String getLoginTokenTimeout() {
       return loginTokenTimeout;
   }

   public void setLoginTokenTimeout(String loginTokenTimeout) {
       this.loginTokenTimeout = loginTokenTimeout;
   }

}

此處是做簡單舉例,不貼出LoginConfMsg 全部代碼。

5.通過注入類的屬性使用proerties配置

通過上面配置已經將login-conf.properties的讀取工作配置完成,在需要讀取login-conf.properties的類中注入LoginConfMsg

    @Autowired
    LoginConfMsg loginConfMsg;

讀取形式為直接調用類的get屬性方法即可

int lockTime = Integer.valueOf(loginConfMsg.getLoginFirstLockTime()) - seconds;

以上是使用spring集成disconf讀取properties文件的配置只用過程

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,942評論 1 92
  • 入門 介紹 Spring Boot Spring Boot 使您可以輕松地創(chuàng)建獨立的、生產級的基于 Spring ...
    Hsinwong閱讀 17,096評論 2 89
  • 今天其實還好除了風有點大,一切都那么的平常,早上做操,然后上課,吃飯,選修課,社團。而幾乎我都是和對象待在一起,可...
    hxzm5dbt閱讀 248評論 0 0

友情鏈接更多精彩內容