您的位置:首页 > 编程语言 > Java开发

spring中读取数据库的property配置文件

2016-09-04 10:28 471 查看

自己刚开始接触spring,在读取数据库的配置文件时总是出错,不过后来解决了,事实上很简单。

step 1

书写数据库的一些连接属性,起名为 db.property 吧,比如用sqlserver数据库:

user= sa
password= 123hcc
jdbcUrl= jdbc:sqlserver://localhost:1433;DatabaseName=WebDB
driverClass= com.microsoft.sqlserver.jdbc.SQLServerDriver
initPoolSize= 5
maxPoolSize= 10

step 2

在配置bean的xml(命名为 db.xml 吧)里导入资源文件db.property

<context:property-placeholder location="classpath:db.property"/>


step 3

接下来就是配置DataSource的bean实例

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="driverClass" value="${driverClass}"></property>

<property name="initialPoolSize" value="${initPoolSize}"></property>
<property name="maxPoolSize" value="${maxPoolSize}"></property>
</bean>


这样基本上就没有问题了。

不过像我这样的初学者即使按照别人的步骤一步步来,也会出现很多错误,下面是我配置过程中遇到的,希望对大家有帮助。

problem 1

org.springframework.beans.factory.BeanInitializationException:

Could not load properties; nested exception is java.io.FileNotFoundException:

class path resource [db.property] cannot be opened because it does not exist

提示说db.property找不到

因为我们配置的是:

<context:property-placeholder location="classpath:db.propery"/>

所以确保db.property文件在src目录下,不要创建在项目目录下

problem 2

提示说无法解析 "${user}"

这个问题很奇怪,SpEL表达式一定没错,当时我也花了很长时间,就是不知道错在哪。

后来我又看了下db.property文件,由于平时写代码时总喜欢在 "=" 前后空一格,所以就写成 "user = sa",

然后我就把user后面的空格给删了,结果问题就解决了....

但是当我写这篇博客时,为了写报错信息想把问题重现时,重新加上空格,运行时他又不报错了.... 我也不知道怎么回事。

如果同学实在不知道错在哪里,可以试试看去掉user后面的空格,或许就能解决了 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息