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

发布于 2021-12-02 04:14:01 字数 930 浏览 676 评论 6

 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上的

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

酷到爆炸 2021-12-04 14:25:22

http://www.oschina.net/question/873438_234580 对问题讲的比较详细

疑心病 2021-12-04 13:39:29

debug发现user值为我的计算机用户名[18] 可能是值重复了[36]

鹤舞 2021-12-04 10:16:46

你用的<context:property-placeholder>要注意system-properties-mode这个属性的设置

皇甫轩 2021-12-04 07:57:26

http://www.oschina.net/question/873438_234580 这个也是类似的问题,应该是${user}获取值的时候出错了, 使用jdbc.user和jdbc.passworld就没问题, 应该是重名的问题

本宫微胖 2021-12-03 21:48:58

=

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文