`

使用spring JdbcDaoSupport 出现'dataSource' or 'jdbcTemplate' is required

阅读更多

应项目要求使用J2SE 集成 spring ,在应用JDBCTemplate进行Dao操作时,出现如下异常

Exception in thread "main" java.lang.ExceptionInInitializerError
	at hk.egame.test.Test.main(Test.java:10)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testDao' defined in file [F:\workspace\pay\applicationContext-bean.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'dataSource' or 'jdbcTemplate' is required
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1336)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
	at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
	at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)
	at hk.egame.frame.util.ContextUtil.<clinit>(ContextUtil.java:14)
	... 1 more
Caused by: java.lang.IllegalArgumentException: 'dataSource' or 'jdbcTemplate' is required
	at org.springframework.jdbc.core.support.JdbcDaoSupport.checkDaoConfig(JdbcDaoSupport.java:109)
	at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1367)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1333)
	... 16 more



上代码(只贴上相关类,方便阅读)

DaoBase.java
public class DaoBase extends JdbcDaoSupport{
	
}


DaoImpl.java
public class DaoImpl extends DaoBase implements DaoInter{
	@Override
	public void delete(User t) {...}

	@Override
	public void deleteById(int id) {...}
}


****** 配置文件 ******
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
......
</bean>
 	
<bean id="daoBase" class="hk.egame.frame.base.DaoBase">
   <property name="dataSource" ref="dataSource" />
</bean>
        
<bean id="testDao" class="hk.egame.test.imp.DaoImpl">
</bean>



出错后,第一感觉是配置应该是没问题的,基类有做dataSource注入配置,查资料也未果,后无意在testDao中也注入dataSource,运行正常,经查资料,在子类Bean中也需设置父类属性,也可以修改或者覆盖父类的属性值


修改后配置
<bean id="daoBase" class="hk.egame.frame.base.DaoBase">
   <property name="dataSource" ref="dataSource" />
</bean>
        
<bean id="testDao" class="hk.egame.test.imp.DaoImpl" parent="daoBase">
</bean>
分享到:
评论

相关推荐

    4.Spring中的JdbcTemplate,Spring中的的事务,

    通过本章节的学习,您应该能够掌握如何使用JdbcTemplate进行基本的数据库操作,以及如何在Spring中配置和使用声明式事务来管理复杂的业务流程。这些技能对于开发基于Spring框架的应用程序至关重要。

    _Spring_使用 JdbcTemplate和JdbcDaoSupport.rar

    在Spring框架中,`JdbcTemplate`和`JdbcDaoSupport`是两个重要的组件,它们用于简化Java数据库连接(JDBC)的操作,提高了代码的可读性和可维护性。本篇文章将详细阐述这两个类的核心概念、使用场景以及如何在实际...

    Spring JdbcDaoSupport 批量插入数据

    首先,`JdbcDaoSupport`是`AbstractJdbcDaoSupport`的子类,它提供了对JDBC访问的便捷封装,允许开发者无需直接管理`DataSource`,而是通过`setJdbcTemplate(JdbcTemplate jdbcTemplate)`方法注入`JdbcTemplate`实例...

    spring的JdbcDaoSupport的一些用法示例

    在Java的Spring框架中,`JdbcDaoSupport`是一个非常重要的工具类,它为基于JDBC的数据访问对象(DAO)提供了一种简化数据库操作的方法。这个类是`org.springframework.jdbc.core.support`包下的一个抽象基类,它为...

    JdbcDaoSupport类的使用

    这里,`dataSource`是一个已定义的数据源bean,Spring会自动将它注入到`myJdbcDao` bean的`dataSource`属性中,从而确保`JdbcDaoSupport`能够正确地创建和初始化`JdbcTemplate`。 总结来说,`JdbcDaoSupport`是...

    Spring JdbcTemplate api

    在Spring框架中,可以为每个DAO配置单独的`JdbcTemplate`实例,或者让DAO类继承`JdbcDaoSupport`类,这样可以通过调用`getJdbcTemplate()`方法来获取`JdbcTemplate`实例。书中提到的做法是为每个DAO添加一个`...

    spring_JdbcTemplete使用详解

    ### Spring JDBC 模板类(JdbcTemplate)使用详解 #### 一、Spring JDBC 概述 Spring 提供了一个强大的模板类 `JdbcTemplate` 来简化 JDBC 操作。通过使用 `JdbcTemplate`,开发者能够减少大量的样板代码,提高...

    spring jdbc

    Spring提供了`JdbcDaoSupport`类,它已经包含了`JdbcTemplate`和`DataSource`的属性。只需继承`JdbcDaoSupport`,并注入`DataSource`,Spring会自动创建`JdbcTemplate`实例。 ```java // Java代码 public class ...

    Spring MVC+SimpleJdbcDaoSupport增删改查小例子

    1. **配置数据源**:在Spring配置文件中配置DataSource Bean,通常使用Apache的Commons DBCP或Tomcat JDBC连接池。 2. **创建DAO**:创建一个继承自SimpleJdbcDaoSupport的DAO类,注入DataSource。 3. **编写CRUD...

    Spring对Hibernate及JDBC提供的支持

    Spring的JdbcDaoSupport是JdbcTemplate的一个抽象基类,为DAO层提供了便捷的支持。开发人员可以通过继承JdbcDaoSupport,自动获得JdbcTemplate实例,无需手动初始化。这样,DAO类可以专注于业务逻辑,而无需关心底层...

    Spring3.0MVC注解+SringJdbcDaoSupport案例

    在本案例中,我们将深入探讨Spring 3.0框架的核心组件——Model-View-Controller(MVC)架构,以及如何结合使用Spring MVC注解和`SpringJdbcDaoSupport`类来构建一个高效、灵活的后端系统。Spring 3.0是Spring框架的...

    Spring持久化模板总结

    本文将深入探讨Spring对JDBCTemplate和HibernateTemplate的整合使用方法,以及JdbcDaoSupport和HibernateDaoSupport的支持。 **JdbcTemplate** JdbcTemplate是Spring提供的一个简单、灵活且强大的JDBC抽象层。它...

    尚硅谷佟刚Spring4代码及PPT.rar

    JdbcDaoSupport、使用 NamedParameterJdbcTemplate、Spring 的声明式事务、事务的属性(传播行为、隔离级别、回滚属性、只读属性、过期时间)、使用 XML 文件的方式配置事务、整合 Hibernate、整合 Struts2 等。

    spring和数据库层的结合

    3. **自动注入与便利获取**:Spring还提供了`JdbcDaoSupport`等类,这些类可以方便地进行数据源的自动注入,并且很容易地获取到模板对象,进一步减少了代码量。 #### 三、Spring与Hibernate的集成 **Hibernate** ...

    spring5框架学习笔记

    Spring 应用之 JdbcDaoSupport 是指使用 Spring 框架来实现 DAO 操作。 Spring 应用之事务支持 Spring 应用之事务支持是指使用 Spring 框架来实现事务管理。 Spring 与 Mybatis 整合 Spring 与 Mybatis 整合是指...

    HibernateDaoSupport与JdbcDaoSupport

    - **Spring配置**:在Spring的配置文件中,通过`&lt;bean&gt;`元素将`JdbcDaoSupport`子类与`DataSource`关联起来。 ```xml &lt;property name="dataSource"&gt; ``` #### 三、编程式事务管理与声明式事务管理中的...

    spring.jdbc-3.0.5.jar

    本文将详细探讨Spring JDBC-3.0.5.jar中的核心概念、功能和使用技巧。 1. **Spring JDBC的核心理念** Spring JDBC的主要目标是简化传统的JDBC编程模型,通过提供模板类和数据访问对象(DAO)支持,来处理数据库...

    spring常用架包

    它包括JdbcTemplate和JdbcDaoSupport等类,帮助处理SQL语句和事务管理。 6. **Spring ORM**:对象关系映射模块,与各种ORM框架(如Hibernate、JPA)集成,简化了数据库操作。通过Spring,可以统一处理数据访问异常...

    SpringMvc, JDBC Template的例子

    2. 然后,创建一个DAO(Data Access Object)层,继承自JdbcDaoSupport类,Spring会自动注入JdbcTemplate实例。 3. 在DAO中,你可以定义方法,如`selectUsers()`、`insertUser()`等,这些方法内部调用JdbcTemplate的...

    spring.doc

    - **Spring JDBC**:提供JdbcTemplate和JdbcDaoSupport等工具类简化JDBC操作,同时支持声明式事务管理。 - **Spring+Hibernate**:Spring整合Hibernate,通过HibernateTemplate进行数据库操作,并提供声明式事务...

Global site tag (gtag.js) - Google Analytics