spring问题:dao继承了HibernateDaoSupport,其中的sessionFactory并不能自动注入,只能手动注入吗?

2024年11月30日 05:33
有2个网友回答
网友(1):

因为你没有注入sessionFactory!
如果你继承了HibernateDaoSupport,你必须得用xml方式进行注入sessionFactory,不能用注解的方式注入,因为sessionFactory在HibernateDaoSupport里面,你看不到,所以没法用@Resource注入。
你上面写了private SessionFactory sessionFactory,但这样没用,必须得有setSessionFactory()这个方法才行。
反正我以前想用注解注入,没有成功。
两个解决办法:
1.你用xml初始化你的dao bean,并用xml方式注入sessionFactory.
2.可以用注解的方式注入,但不要继承HibernateDaoSupport,然后在dao里写上setSessionFactory()方法,用注解方式将其注入即可。

如果谁能用注解方式注入继承了HibernateDaoSupport类的dao,麻烦能告诉我一声,谢谢,呵呵。

网友(2):

我所了解的是:

父类依赖sessionFaction,具有setSessionFactory方法,但这个方法是final的,不能覆写。因此需要自己定义一个方法,并注入sessionFactory,然后调用父类setSessionFactory方法,将对象传入。

给你个例子:

@Repository
public class xxxImpl extends HibernateDaoSupport implements xxxDao {
        @Resource
public void setSF(SessionFactory sf) {
super.setSessionFactory(sf);
    }
.
.
.
    }