问题描述:在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类)
确认了以上流程没问题后,又仔仔细细地分析了一遍报错信息