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

我的dao继承了spring提供的HibernateDaoSupport,我能够通过手动注入sessionFactory,如下:<p:beanid="session... 我的dao 继承了spring提供的HibernateDaoSupport,我能够通过手动注入sessionFactory,如下:<p:bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <p:property name="configLocation" value="classpath:com/ning/biz/hibernate.cfg.xml"></p:property></p:bean> <p:bean id="dao" class="com.ning.dao.StudentHibnateImpl"> <p:property name="sessionFactory" ref="sessionFactory"></p:property> </p:bean> 。sessionFactory是HibernateDaoSupport继承下来的,其提供了final的getter and setter 方法,我在本人的dao中重写了一下,然后在配置文件中去掉了dao的配置,dao已经自动标注了@Repository("dao")@Autowired@Qualifier("dao")private SessionFactory sessionFactory;但自动注入并不成功,为什么? 展开
 我来答
百度网友4a2b190
2012-03-03 · TA获得超过136个赞
知道答主
回答量:32
采纳率:0%
帮助的人:27.6万
展开全部
因为你没有注入sessionFactory!
如果你继承了HibernateDaoSupport,你必须得用xml方式进行注入sessionFactory,不能用注解的方式注入,因为sessionFactory在HibernateDaoSupport里面,你看不到,所以没法用@Resource注入。
你上面写了private SessionFactory sessionFactory,但这样没用,必须得有setSessionFactory()这个方法才行。
反正我以前想用注解注入,没有成功。
两个解决办法:
1.你用xml初始化你的dao bean,并用xml方式注入sessionFactory.
2.可以用注解的方式注入,但不要继承HibernateDaoSupport,然后在dao里写上setSessionFactory()方法,用注解方式将其注入即可。

如果谁能用注解方式注入继承了HibernateDaoSupport类的dao,麻烦能告诉我一声,谢谢,呵呵。
iamashenxian
推荐于2018-03-14
知道答主
回答量:70
采纳率:100%
帮助的人:26.7万
展开全部

我所了解的是:

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

给你个例子:

@Repository
public class xxxImpl extends HibernateDaoSupport implements xxxDao {
        @Resource
public void setSF(SessionFactory sf) {
super.setSessionFactory(sf);
    }
.
.
.
    }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式