spring 4.3.1中使用外部属性文件使c3p0链接数据库时遇到的一个bug

发布于 2016/07/15 23:58
阅读 498
收藏 1
 Spring中通过在applicationContext.xml文件中引入db.properties.xml外部属性文件来链接数据库
<context:property-placeholder location="classpath:db.properties"/>

db.properties.xml文件内容如下:
user=root 
password=123456 
driverClass=com.mysql.cj.jdbc.Driver 
jdbcUrl=jdbc:mysql://shop?autoReconnect=true&useSSL=false

配置bean时,用"${user}","${password}","${driverClass}"来获取属性值,

但是在运行时,发现c3p0不能链接数据库,debug发现在获取user属性值时出错,而其他的属性值是正确的

<property name="user" value="${user}"/> 只有这里获取的值是错误的
<property name="password" value="${password}"/>
<property name="driverClass" value="${driverClass}"/> 
<property name="jdbcUrl" value="${jdbcUrl}"/>


如果不使用外部属性文件配置,直接写成

<property name="user" value="root"/> 时,c3p0是可以链接到mysql上的

有人遇到过同样的问题吗?

加载中
1
loyal
loyal

=

也许是你name有重复的key.user而已.

溱
http://www.oschina.net/question/873438_234580 这个也是类似的问题,应该是${user}获取值的时候出错了, 使用jdbc.user和jdbc.passworld就没问题, 应该是重名的问题
写给三月
写给三月
对的
1
逝水fox
逝水fox
你用的<context:property-placeholder>要注意system-properties-mode这个属性的设置
0
溱
debug发现user值为我的计算机用户名[18] 可能是值重复了[36]
溱
http://www.oschina.net/question/873438_234580 对问题讲的比较详细
返回顶部
顶部