`

'sessionFactory' or 'hibernateTemplate' is required

阅读更多

异常:

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'articleServiceImpl' defined in file 
[D:\My Documents\zzcms\zzcms\WebRoot\WEB-INF\classes\com\zzcms\article\service\impl\ArticleServiceImpl.class]: Invocation of init method failed; 
nested exception is java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required

我的结构是ArticleServiceImpl继承DaoSupport(自己写的实现类), DaoSupport 继承 HibernateDaoSupport.

因为HibernateDaoSupport里需要用到SessionFactory, 因此, DaoSupport (自己写的实现类)中必须注入一个SessionFactory

之前我是在applicationContext.xml中配置的,如下:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
          <property name="dataSource" ref="dataSource"/>
         <property name="packagesToScan">
            <list>            	
                <value>com.zzcms.article.entity</value>             
            </list>
        </property>
</bean>
<!-- 下面这段代码 -->
<bean id="daoSupoort" class="com.zzcms.dao.base.DaoSupport">
          <property name="sessionFactory" ref="sessionFancory"/>
</bean>

  

上面的配置就把SessionFactory注入进去了。

 

现在我使用的是注解, DaoSupport中需要这样才能成功注入SessionFactory

@Transactional//具有默认的事务行为
public abstract class DaoSupport extends HibernateDaoSupport implements DAO { 
	/**
  	* - 【注入 SessionFactory】
	* - 注入一个sessionFactory属性,并注入到父类(HibernateDaoSupport )里
  	* **/
  	private SessionFactory sessionFacotry;
	//注入一个bean, 默认(name = "sessionFactory"), 因此只写@Resource
  	@Resource     
  	public void setSessionFacotry(SessionFactory sessionFacotry) {   
        		super.setSessionFactory(sessionFacotry);   
  	}   
   	//省略非重点代码...

}

 

 

 ================================The End========================================

 

 

0
0
分享到:
评论
6 楼 fly_宇光十色 2013-05-28  
我也是这么配置的,但是启动报错!
Invalid property 'driverClass' of bean class [org.springframework.jdbc.datasource.DriverManagerDataSource]: Bean property 'driverClass' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
5 楼 chenshichenshi 2013-05-03  
开始报错:没有hibernateTemplat , 然后看了你的帖子 写了个sessionFactory  结果运行没错了额,也是用注解弄的
4 楼 zhangzi 2013-01-31  
不太明白你的意思
3 楼 overshit 2013-01-30  
您好,公司也是用的org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

而且把他封装成不准用原始sql,只能用对象查询,我就郁闷了

我其它地方配置了事物,这里应该可以不配置,连接关闭手动?

2 楼 zhangzi 2010-04-29  
不用写setSessionFactory

如何得到session呢?
1 楼 songfantasy 2010-04-29  
也遇到这样的问题,不知道还有没有其他注解的方式,最好有不用写setSessionFactory方法。

相关推荐

    一个模拟Spring将SessionFactory注入到HibernateTemplate的小例子

    本示例将深入探讨如何使用Spring将SessionFactory注入到HibernateTemplate中,从而实现数据库操作的便捷管理。 首先,让我们了解几个关键组件: 1. SessionFactory:这是Hibernate的核心工厂类,用于创建Session...

    HibernateTemplate的方法使用

    - 在这种方式下,我们直接使用 DataSource 来创建 SessionFactory,并从 SessionFactory 创建 HibernateTemplate。 3. **直接获取并使用**: - 这种方式较为简单,直接通过现有的 SessionFactory 获取 ...

    HibernateTemplate 的常规用法.doc

    hibernateTemplate = new HibernateTemplate(sessionFactory); } return hibernateTemplate; } public List&lt;Person&gt; getPersons() { return getHibernateTemplate().find("from Person"); } public Person...

    hibernateTemplate

    hibernateTemplate = new HibernateTemplate(sessionFactory); } return hibernateTemplate; } // 查询所有Person实例 public List&lt;Person&gt; getPersons() { return getHibernateTemplate().find("from ...

    HibernateTemplate的用法总结

    hibernateTemplate = new HibernateTemplate(sessionFactory); } return hibernateTemplate; } // 查询所有Person public List&lt;Person&gt; getPersons() { // 使用HibernateTemplate查询所有Person return ...

    HibernateTemplate详细描述以及使用范围

    HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory, true); ``` #### 四、SessionFactory的作用 `SessionFactory`是Hibernate的核心工厂类,负责创建`Session`对象,同时也是线程...

    HibernateTemplate源代码

    throw new InvalidDataAccessApiUsageException("SessionFactory required for HibernateTemplate"); } // 获取当前会话 Session session = sessionFactory.getCurrentSession(); // 设置会话配置 ...

    关于使用HibernateTemplate

    &lt;property name="sessionFactory" ref="sessionFactory"/&gt; ``` - **使用**:在需要进行事务管理的方法上添加`@Transactional`注解即可,例如: ```java @Service @Transactional public class ...

    Spring_Spring_Hibernate_HibernateTemplate

    - 创建HibernateTemplate实例:使用SessionFactory创建HibernateTemplate,通常通过`setSessionFactory()`方法注入SessionFactory。 - 编写业务逻辑:调用HibernateTemplate提供的方法,如`save()`, `update()`, `...

    SSH2增删改查使用HibernateTemplate

    DataSource用于连接数据库,SessionFactory是Hibernate的核心接口,而HibernateTemplate则是Spring对SessionFactory的封装,提供了一种模板方法模式来执行常见的Hibernate操作。 ```xml &lt;!-- 数据库连接配置 --&gt; ...

    使用 HibernateSessionFactory 类

    在Java的持久化框架Hibernate中,`SessionFactory`是核心组件之一,它负责管理数据库会话并提供对象-关系映射(ORM)的功能。本篇文章将深入探讨`SessionFactory`的使用,以及如何创建和操作它。 `SessionFactory`...

    HibernateSessionFactory.java

    HibernateSessionFactory.java

    HibernateSessionFactory 代码

    本篇文章将深入探讨`HibernateSessionFactory`及其在Hibernate中的作用,以及如何使用它来实现增、删、查、改(CRUD)操作。 `SessionFactory`是Hibernate的核心组件,它是线程安全的,负责管理数据库连接和会话。`...

    hibernate_jar.rar

    在Spring中整合Hibernate,主要通过Spring的DataSource、SessionFactory和HibernateTemplate或HibernateDaoSupport来实现。Spring能够管理SessionFactory的生命周期,提供事务处理,并通过AOP实现事务的声明式管理...

    hibernateDaoSurpport和hibernateTemplate

    通过这种方式,开发者可以在继承`HibernateDaoSupport`的DAO实现类中直接调用`HibernateTemplate`的方法,而无需显式创建`SessionFactory`和`HibernateTemplate`。 #### 四、比较分析 - **使用场景**:`...

    HibernateTemplate类的使用

    ### HibernateTemplate类的使用详解 #### 一、引言 在Java开发中,持久层框架Hibernate因其优秀的ORM(Object-Relational Mapping)特性被广泛应用。为了更便捷地使用Hibernate,Spring框架提供了一系列工具类来简化...

    基于HIbernateTemplate的代码自动生成

    它是Spring对Hibernate提供的一个抽象层,它提供了一组模板方法,使得开发者可以更方便地进行持久化操作,如保存、更新、删除和查询等,而无需直接与`Session`或`SessionFactory`打交道。`HibernateTemplate`内部...

    hibernate模拟hibernatetemplate

    在Spring 3.x版本之后,HibernateTemplate被HibernateOperations接口和SessionFactory取代,但在之前的版本中,它是非常流行的一种选择。 **一、HibernateTemplate介绍** HibernateTemplate是Spring对Hibernate的一...

    Spring整合hibernate(2)之基于HibernateTemplate的整合

    HibernateTemplate是Spring为Hibernate提供的一个便捷工具类,它包装了SessionFactory和Session的基本操作,如查询、保存、更新和删除等。在项目中,我们首先需要添加Spring和Hibernate的相关jar包,包括spring-tx、...

Global site tag (gtag.js) - Google Analytics