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上的
有人遇到过同样的问题吗?
也许是你name有重复的key.user而已. ######http://www.oschina.net/question/873438_234580 这个也是类似的问题,应该是${user}获取值的时候出错了, 使用jdbc.user和jdbc.passworld就没问题, 应该是重名的问题######对的######你用的<context:property-placeholder>要注意system-properties-mode这个属性的设置
######debug发现user值为我的计算机用户名[18] 可能是值重复了[36]######http://www.oschina.net/question/873438_234580 对问题讲的比较详细
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。