`

使用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>
分享到:
评论

相关推荐

    _Spring_使用 JdbcTemplate和JdbcDaoSupport.rar

    Spring_使用 JdbcTemplate和JdbcDaoSuppor所需架包

    Spring JdbcDaoSupport 批量插入数据

    NULL 博文链接:https://huibin.iteye.com/blog/618316

    spring的JdbcDaoSupport的一些用法示例

    NULL 博文链接:https://fsh430623.iteye.com/blog/940988

    JdbcDaoSupport类的使用

    String框架中的JdbcDaoSupport类的使用

    spring.doc

    5.1.4 使用JdbcTemplate 106 5.1.5 继承JdbcDaoSupport 107 5.1.6 使用properties文件 107 5.1.7 RowMapper的使用 107 拓展: 108 DataSource注入的三种方式: 108 5.1.8声明式事务管理 116 5.1.8.1Spring的事务管理...

    Spring持久化模板总结

    总结对比了Spring对JDBCTemplate和SpringTemplate的整合使用方法,尤其JdbcDaoSupport和HibernateDaoSupport的使用方法

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

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

    Spring MVC+SimpleJdbcDaoSupport增删改查小例子

    NULL 博文链接:https://qindongliang.iteye.com/blog/1998799

    SPRING API 2.0.CHM

    JdbcDaoSupport JdbcOperations JdbcTemplate JdbcTransactionObjectSupport JdbcUpdateAffectedIncorrectNumberOfRowsException JdbcUtils JdkDynamicAopProxy JdkRegexpMethodPointcut JdkVersion ...

    Spring3.0MVC注解+SringJdbcDaoSupport案例

    Spring3.0MVC注解+SringJdbcDaoSupport案例,前端包括批量伤处,SpringAop声明式事务控制的配置等信息

    Spring 代理 Aop 实现原理讲解.docx

     IoC原理分析  基于XML的IoC实现  基于XML的DI使用  基于注解的IoC实现  Spring纯注解实现方式(无XML配置) ... Spring应用之JdbcDaoSupport  Spring应用之事务支持  Spring与Mybatis整合

    08课 Spring5讲义(2018.8.5).docx

    spring 知识点,非常重要, IoC原理分析  基于XML的IoC实现  基于XML的DI使用  基于注解的IoC实现 ... Spring应用之JdbcDaoSupport  Spring应用之事务支持  Spring与Mybatis整合

    HibernateDaoSupport与JdbcDaoSupport

    HibernateDaoSupport与JdbcDaoSupport总结

    Spring 入门到实战

    在Spring中配置Bean、自动装配、Bean之间的关系(依赖、继承)、Bean的作用域、使用外部属性文件、SpEL、...使用JdbcTemplate和JdbcDaoSupport、Spring的声明式事务、事务的属性、使用XML文件的方式配置事务整合应用

    Java Web程序设计教程

    13.2.2通过jdbcdaosupport使用jdbctemplate 263 13.2.3jdbctemplate提供的常用数据操作方法 264 13.3spring中的事务处理 265 13.3.1spring事务处理概述 266 13.3.2编程式事务处理 266 13.3.3声明式事务处理 ...

    Javashop开发规范V2.2

    input type="text" name="test10" isrequired="true" fun="checkUserName"&gt; &lt;input type="submit" value="确定" /&gt; &lt;/form&gt; 5.3.2 参数说明: 5.3.2.1 isrequired 为true则为必填项,不...

Global site tag (gtag.js) - Google Analytics