Spring JDBC:无法获取dataSource

时间:2013-07-24 17:53:19

标签: java spring maven jdbc spring-jdbc

我有一个名为appConfig.xml的spring XML配置文件,它包含一个数据源bean和另一个将数据源作为参数传递给它的JDBCtemplate:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://localhost:3306/test"/>
</bean>

<bean id="JDBCTemplate" class="com.myprojects.JDBCTemplate">
    <property name="dataSource" ref="dataSource"/>
</bean>

我收到错误:

  

线程“main”中的异常org.springframework.beans.factory.BeanCreationException:创建文件[appConfig.xml]中定义名为'JDBCTemplate'的bean时出错:设置属性值时出错;嵌套异常是org.springframework.beans.PropertyBatchUpdateException;嵌套的PropertyAccessExceptions   PropertyAccessException 1:org.springframework.beans.MethodInvocationException:属性'dataSource'抛出异常;嵌套异常是java.lang.IllegalArgumentException:属性'dataSource'是必需的

从我从这个错误中看到的,它无法将dataSource传递给JDBCTemplate。日志还说:

  

加载的JDBC驱动程序:com.mysql.jdbc.Driver

我有pom.xml中提到的所有依赖项,我确认已加载spring的必需jar并且还加载了mysql jdbc连接器。关于问题的任何线索?

我尝试了一个不同的项目,我手动添加了所有spring依赖项和mysql jdbc连接器作为库的一部分。它在那里工作得很好。但是在尝试通过pom.xml包含依赖项时,我正面临着这个问题。所以我假设这与某些依赖性没有被拉入或某事有关。但无法弄清楚错误中的哪一个。

1 个答案:

答案 0 :(得分:3)

它认为您的班级JDBCTemplate没有名为dataSource

的媒体资源

也许你没有一个公共方法setDataSource(),它只有一个正确类型的参数。

也许是私人的。

也许拼错了。