spring : HibernateDaoSupport,其中的sessionFactory并不能自动注入,只能手动

102 篇文章 2 订阅

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

2012-02-19 12:14匿名  |  浏览 3733 次
我的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;但自动注入并不成功,为什么?
2012-03-03 19:29 网友采纳
因为你没有注入sessionFactory!
如果你继承了HibernateDaoSupport,你必须得用xml方式进行注入sessionFactory,不能用注解的方式注入,因为sessionFactory在HibernateDaoSupport里面,你看不到,所以没法用@Resource注入。  
你上面写了private SessionFactory sessionFactory,但这样没用,必须得有setSessionFactory()这个方法才行。
反正我以前想用注解注入,没有成功。
两个解决办法:
1.你用xml初始化你的dao bean,并用xml方式注入sessionFactory.
2.可以用注解的方式注入,但不要继承HibernateDaoSupport,然后在dao里写上setSessionFactory()方法,用注解方式将其注入即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值