Dao 繼承 HibernateDaoSupport後,使用註解注入sessionFactory

来源:互联网 发布:电机数据大全安装尺寸 编辑:程序博客网 时间:2024/04/28 20:36
在spring 的HibernateDaoSupport中,setSessionFactory是使用final 修飾的,無法重寫,沒有辦法使用註解的方式注入sessionFactroy。代碼如下:
/** * Set the Hibernate SessionFactory to be used by this DAO. * Will automatically create a HibernateTemplate for the given SessionFactory. * @see #createHibernateTemplate * @see #setHibernateTemplate */public final void setSessionFactory(SessionFactory sessionFactory) {if (this.hibernateTemplate == null || sessionFactory != this.hibernateTemplate.getSessionFactory()) {this.hibernateTemplate = createHibernateTemplate(sessionFactory);}}

我们可以变通一下,自己定义一个方法,这个方法去调用hibernateDaoSupport 中的setSessionFacotry方法,达到注入sessionFactory 的目的。

因此我定义如下的类:

我们可以变通一下,自己定义一个方法,这个方法去调用hibernateDaoSupport 中的setSessionFacotry方法,达到注入sessionFactory 的目的。

因此我定义如下的类:因此我定义如下的类:

public class SystemHibernateSupport extends HibernateDaoSupport {@Resource(name = "sessionFactory")public void setSuperSessionFactory(SessionFactory sessionFactory) {super.setSessionFactory(sessionFactory);}}

,所有的Dao 继承自定义的SystemHibernateSupport。

该问题迎刃而解。