Spring配置文件元素

Spring配置文件元素<context:property-placeholder location="classpath:application.properties" />
 <context:property-placeholder location="classpath*:*.properties"
                                  ignore-unresolvable="true"/>

1.有些参数在某些阶段中是常量
比如:a、在开发阶段我们连接数据库时的连接url,username,password,driverClass等
b、分布式应用中client端访问server端所用的server地址,port,service等
c、配置文件的位置
2.而这些参数在不同阶段之间又往往需要改变
比如:在项目开发阶段和交付阶段数据库的连接信息往往是不同的,分布式应用也是同样的情况。
期望:能不能有一种解决方案可以方便我们在一个阶段内不需要频繁书写一个参数的值,而在不同阶段间又可以方便的切换参数配置信息
解决:spring3中提供了一种简便的方式就是context:property-placeholder/元素
只需要在spring的配置文件里添加一句: 即可,这里location值为参数配置文件的位置,参数配置文件通常放在src目录下,而参数配置文件的格式跟java通用的参数配置文件相同,即键值对的形式,例如:

#jdbc配置
test.jdbc.driverClassName=com.mysql.jdbc.Driver
test.jdbc.url=jdbc:mysql://localhost:3306/test
test.jdbc.username=root
test.jdbc.password=root
行内#号后面部分为注释

例子:我们在Spring配置文件中使用这个元素属性,那么我们就可以在下边的配置文件中直接使用EL表达式就可以实现取值操作:

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close" autowire="no">
        <property name="fairQueue" value="false"/>
        <property name="minIdle" value="1"/>
        <property name="maxIdle" value="5"/>
        <property name="maxActive" value="5"/>
        <property name="initialSize" value="1"/>
        <property name="testOnBorrow" value="true"/>
        <property name="validationQuery" value="select 1"/>
        <property name="validationInterval" value="500000"/><!-- 5min -->
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="30"/>
        <property name="driverClassName" value="${mysql.jdbc.driver}"/>
        <property name="url" value="${mysql.jdbc.url}"/>
        <property name="username" value="${mysql.jdbc.username}"/>
        <property name="password" value="${mysql.jdbc.password}"/>
    </bean>

这里的 ${mysql.jdbc.driver} 就是我们实现的效果,我们可以在其他的配置文件中配置这些变量,就可以直接使用:

mysql.jdbc.driver=com.mysql.jdbc.Driver
mysql.jdbc.url=jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&amp;characterEncoding=UTF-8&allowMultiQueries=true
mysql.jdbc.username=123
mysql.jdbc.password=123

版权声明:本文为博主原创文章,未经博主允许不得转载。