美文网首页我爱编程
Spring MVC 集成disconf读取properties

Spring MVC 集成disconf读取properties

作者: Lickey | 来源:发表于2018-06-27 20:26 被阅读0次

    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>
                    <!--多个动态配置配置在这里-->
                    <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文件的配置只用过程

    相关文章

      网友评论

        本文标题:Spring MVC 集成disconf读取properties

        本文链接:https://www.haomeiwen.com/subject/joebyftx.html