0

我有一个名为 appConfig.xml 的 spring XML 配置文件,其中包含一个数据源 bean 和另一个 JDBC 模板,数据源作为参数传递给该模板:

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

我收到一个错误:

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

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

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

我在 pom.xml 中提到了所有依赖项,并且我验证了 spring 所需的 jar 已加载,并且 mysql jdbc 连接器也已加载。关于问题可能是什么的任何线索?

我尝试了一个不同的项目,在其中手动添加了所有 spring 依赖项和 mysql jdbc 连接器作为库的一部分。它在那里工作得很好。但是在尝试通过 pom.xml 包含依赖项时,我遇到了这个问题。所以我假设这与一些没有被引入的依赖或其他东西有关。但无法从错误中找出哪一个。

4

1 回答 1

3

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

也许您没有具有setDataSource()正确类型的单个参数的公共方法。

也许它是私人的。

也许它拼写错误。

于 2013-07-24T18:02:25.850 回答