spring集成hibernate中使用纯注解注入sesstionFactory实例问题

在Spring与Hibernate集成过程中,遇到DAO层注入SessionFactory时出现错误:'sessionFactory' or 'hibernateTemplate' is required。尽管已进行注解注入,但问题依旧存在。经过一系列排查,发现是由于在Service层错误地继承了DAO层,而DAO层继承自Hibernate的HibernateDaoSupport,导致启动时需注入sessionFactory。解决方法是避免在Service层继承DAO层,保持正确依赖关系。
摘要由CSDN通过智能技术生成

问题描述:在spring和hibernate集成时,需要在dao实现层中注入sessionFactory,但是启动报错:Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required。明明已经注入了,但是却还报这个错。而且之前的都是使用注解注入,都没问题。排查了几个来回,还是报错,最后都怀疑人生了。

注入如下:

    @Resource
    public void setSessionFacotry(SessionFactory sessionFactory) {
        super.setSessionFactory(sessionFactory);
    }

排查过程:几经周折,最终先理了一遍spring对bean的管理流程,注解方式和xml方式思路大体一样,我使用的是注解,所以简单写一下注解方式:1.先在spring的配置文件中启动注解扫描,且配置需要扫描的包,多个包中间用逗号隔开。2.service层实现类上贴上spring注解(可用@Component,@Service),并且写上实例名,用接口名首字母些小。3.dao层实现类上贴上注解(可用@Component,@Repository),并且写上实例名,用接口名首字母些小。4.dao实现类里注入sessionFactory。(dao实现继承了hibernate的hibernateDaoSupport类)

确认了以上流程没问题后,又仔仔细细地分析了一遍报错信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值