Spring读取properties方式

题记

关于配置文件使用的相关感想:
把可以配置的参数定义在properties文件中可以增加项目的通配性,让项目中的所有xml配置文件中都可以引用对应的属性值。而且我们文件的放置位置可以用一个单独的盘挂载到我们的项目服务器上,这样我们的配置文件在一个环境中就是独一份,而不是每个项目服务器上都有一份,而出现冗余的情况,而且一旦需要修改每个项目服务器都需要改,这样也会增加错误和不一致的几率。这种把配置文件独立出项目包的操作还是比较值得借鉴的,这样我们如果要改相关配置的话,直接修改了之后是不会影响到我们的项目打好的包的,这样就可以修改之后重启一下就OK了而不用重新打包再发布。

方式1:

我们最常用的就是用如下方式,在spring配置文件中增加如下配置

<bean
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreResourceNotFound" value="true" />
        <property name="ignoreUnresolvablePlaceholders" value="true" />
        <property name="locations">
            <list> 
                <value>file:///nfs/elec/config/jdbc.properties</value> 
            </list>
        </property>
    </bean>

jdbc.properties摘要如下

#############################
jdbc.username=root
jdbc.pwd=mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.databaseurl=jdbc:mysql://10.36.211:3306/lts?useUnicode=true&characterEncoding=UTF-8

然后在配置mybatis数据源的时候就可以使用如下的方式进行参数的配置了

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass">
            <value>${jdbc.driverClassName}</value>
        </property>
        <property name="jdbcUrl">
            <value>${jdbc.databaseurl}</value>
        </property>
        <property name="user">
            <value>${jdbc.username}</value>
        </property>
        <property name="password">
            <value>${jdbc.pwd}</value>
        </property>
    </bean>

方式2

在spring配置文件中增加如下配置,我们在配置文件和java文件中都可以使用

<util:properties id="systemConfig" location="file:///nfs/elec/config/system.properties" />

上面的这种配置通过查看xmlns:util=http://www.springframework.org/schema/util
发现最终使用的是org.springframework.beans.factory.config.PropertiesFactoryBean
即为注解方式的使用
另外一种写法如下

<bean id="prop" class="org.springframework.beans.factory.config.PropertiesFactoryBean">  
    <property name="locations"> 
        <list>  
            <value> file:///nfs/elec/config/system.properties</value>  
        </list>  
    </property>  
</bean>

获取值的方式如下,在注解方式的service如下

@Value("#{systemConfig['policyStatisticsService1.path']}")
private String service1;

spring其他配置文件中使用如下

<bean id="requestFactory" class="org.springframework.http.client.SimpleClientHttpRequestFactory">
        <property name="readTimeout" value="#{systemConfig['readTimeout']}" />
        <property name="connectTimeout" value="#{systemConfig['connectTimeout']}" />
    </bean>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值