有时候我们不想在打包的时候把数据源连接属性等参数也打包进去。
以我们公司为例,一个项目会部署不同的地市,不同的地市使用不同的数据库口令,连接
所以我把数据源部分抽离处理放在tomcat的weapps目录下面,是要修改时候直接改了重启即可,不需要重新编码代码或者修改源码,一下方式供大家参考。
在applicationContext.xml加载以下配置:
<context:property-placeholder location="file:../webapps/application.properties" />
applicationContext.xml数据源部分:
<bean id="gp_ssmp_DataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<!--<property name="auth" value="${ssmp_gp.auth}"/>-->
<!--<property name="type" value="${ssmp_gp.type}"/>-->
<property name="driverClassName" value="${ssmp_gp.driverClassName}"/>
<property name="url" value="${ssmp_gp.url}"/>
<property name="username" value="${ssmp_gp.username}"/>
<property name="password" value="${ssmp_gp.password}"/>
<property name="initialSize" value="${ssmp_gp.initialSize}"/>
<property name="maxActive" value="${ssmp_gp.maxActive}"/>
<property name="maxIdle" value="${ssmp_gp.maxIdle}"/>
<property name="maxWait" value="${ssmp_gp.maxWait}"/>
<property name="validationQuery" value="${ssmp_gp.validationQuery}"/>
</bean>
application.properties内容如下:
####################################################
###ssmp_gp_stb.datasource###
ssmp_gp_stb.auth=Container
ssmp_gp_stb.type=javax.sql.DataSource
ssmp_gp_stb.driverClassName=org.postgresql.Driver
ssmp_gp_stb.url=jdbc:postgresql://192.168.8.52:5432/gp_gz
ssmp_gp_stb.username=gzgp
ssmp_gp_stb.password=123456
ssmp_gp_stb.initialSize=5
ssmp_gp_stb.maxActive=10
ssmp_gp_stb.maxIdle=10
ssmp_gp_stb.maxWait=-1
ssmp_gp_stb.validationQuery=select 1
bean里面使用不同的BasicDataSource所需要的参数也不一样这一点需要注意,