Spring整合Hibernate时遇到BeanCreationException
来源:互联网 发布:java 线程挂起和唤醒 编辑:程序博客网 时间:2024/06/05 15:39
初学Spring,在Spring中整合Hibernate时,遇到如下异常:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'BookDAO' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: sessionFactory or hibernateTemplate is required
我在程序中定义了一个BookDAO类,继承了HibernateDaoSupport,以利用HibernateTemplate来进行对数据库数据的增删修查的操作。
public void addBook(Book book){
getHibernateTemplate().save(book);
getHibernateTemplate().flush();
}
public void delBook(Book book){
getHibernateTemplate().delete(book);
getHibernateTemplate().flush();
}
public void update(Book book){
getHibernateTemplate().update(book);
getHibernateTemplate().flush();
}
public Book getBook(long oid){
return (Book)getHibernateTemplate().get(Book.class, oid);
}
}
另外,我定义了一个类BookSrv,其依赖于BookDAO,并利用Setter Injection的依赖注入方式,注入BookDAO的对象。
private BookDAO bdao=null;
public void setBdao(BookDAO bdao) {
this.bdao = bdao;
}
public void add(Book book){
bdao.addBook(book);
}
public void del(Book book){
bdao.delBook(book);
}
public void update(Book book){
bdao.update(book);
}
public Book get(long oid){
return bdao.getBook(oid);
}
}
我原先的错误的配置文件如下(省略其他部分):
</bean>
<bean id="BookSrv" class="srv.BookSrv">
<property name="bdao" ref="BookDAO"></property>
</bean>
想了很久,也找不出异常地原因。而且被那一句sessionFactory or hibernateTemplate is required所害,一直在dataSource、sessionFactory、hibernateTemplate的配置上苦苦地追寻着错误所在。
其实早该发现问题地所在:BeanCreationException: Error creating bean with name 'BookDAO' ……
因为BookDAO继承了HibernateDaoSupport,并利用HibernateDaoSupport的getHibernateTemplate()得到一个HibernateTemplate的对象,然后再调用这个对象的save()、flush()等方法。所以,BookDAO依赖于HibernateTemplate。
于是,在配置文件中加上BookDAO对HibernateTemplate的依赖即可解决问题。
正确的配置文件为:
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>
<bean id="BookSrv" class="srv.BookSrv">
<property name="bdao" ref="BookDAO"></property>
</bean>
- Spring整合Hibernate时遇到BeanCreationException
- Spring整合Hibernate时遇到BeanCreationException
- Spring整合Hibernate出现BeanCreationException,ClassNotFoundException
- Spring 与 hibernate 整合遇到的问题
- spring整合hibernate中遇到的坑
- spring和hibernate整合遇到的问题
- Spring整合Hibernate遇到的问题
- 初次整合SSH时,遇到了org.springframework.beans.factory.BeanCreationException错误
- spring spring mvc hibernate整合遇到的异常
- 我在spring 中整合hibernate 遇到的错误
- flex 整合spring,hibernate遇到的一些问题
- Spring整合hibernate(注解)遇到unknown entity问题
- hibernate与spring整合所遇到的问题
- struts2+hibernate+spring整合过程中遇到的问题
- spring beanCreationException
- spring mvc/mybatis整合,junit测试报BeanCreationException
- Spring:Spring整合Hibernate
- 【Spring】Spring+hibernate整合
- MS SQL Server 2005 免费下载地址
- 访问jboss和weblogic的 jndi 方法
- CListCtrl控件使用
- PROJECT ASSISTANT:创建一个项目、目标并一次添加多个功能集
- 关于ResourceBundle的找不到资源的问题
- Spring整合Hibernate时遇到BeanCreationException
- GUI 使用方法 二
- CEGUI 使用方法 一
- 比尔·盖茨给毕业生的忠告
- 常用的JavaScript验证正则表达式
- CEGUI 使用方法 四
- openssl常用函数---SSL/TLS编程
- 电子邮件归档,ECM与SaaS
- ext API文档loading问题