1、首先Dao接口的实现类继承HibernateDaoSupport这个抽象类。
如
public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T>{
..............
}
2、向BaseDaoImpl中注入一个HibernateTemplate对象
①、注解
@Resource(name="sessionFactory")
public void setSessionFactoryDI(SessionFactory sessionFactory) {
//调用父类的setSessionFactory方法,注入sessionFactory
super.setSessionFactory(sessionFactory);
}
说明:父类HibernateDaoSupport中的setSessionFactory()方法如下:
public final void setSessionFactory(SessionFactory sessionFactory) {
if (this.hibernateTemplate == null || sessionFactory != this.hibernateTemplate.getSessionFactory()) {
this.hibernateTemplate = createHibernateTemplate(sessionFactory);
}
}
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
return new HibernateTemplate(sessionFactory);
}
②、声明式
在applicationContext.xml中写入
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
说明:在产生hibernateTemplate对象的时候,注入一个sessionFactory对象。