您的位置:首页 > 移动开发

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

2017-01-23 09:42 791 查看
 <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&characterEncoding=UTF-8&allowMultiQueries=true

mysql.jdbc.username=123

mysql.jdbc.password=123
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring
相关文章推荐