You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot迁移时找不到org.hibernate.SessionFactory类型Bean问题求助

问题解决思路

1. 首先确认Spring Boot版本兼容性

你原有项目依赖Spring 3 + Hibernate 3,而Spring Boot 2.0及以上版本依赖的Spring Framework 5.x已经完全移除了对Hibernate 3的支持包org.springframework.orm.hibernate3,会直接导致项目B中定义的AnnotationSessionFactoryBean实例化失败,对应的SessionFactory自然不会注册到容器中。
请将你的Spring Boot版本降级到1.5.x最后稳定版,该版本依赖的Spring Framework 4.3.x仍保留了Hibernate 3的兼容支持。

2. 确认自定义XML配置被Spring Boot正确加载

Spring Boot默认不会主动识别项目中的自定义Spring XML配置文件,你需要在启动类上添加@ImportResource注解显式加载你的配置:

@SpringBootApplication
@ImportResource(locations = {"classpath:你的配置文件名称.xml"}) // 替换为你项目里的XML配置文件名
public class ApplicationStarter {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationStarter.class, args);
    }
}

配置加载后你可以启动时添加--debug参数,查看日志确认项目B的config.xml被成功导入、sessionFactory bean的初始化状态。

3. 补全缺失的依赖包

请检查项目的依赖管理,确保已经引入以下必需依赖(无需修改项目B代码):

  • Hibernate 3核心包,版本和原有项目保持一致
  • 对应数据库的JDBC驱动包
  • Spring Boot 1.5.x对应的spring-orm兼容包

4. 高版本Spring Boot兼容方案(如必须使用2.x及以上版本)

如果有强制要求使用高版本Spring Boot,可以手动将Spring 4.3.x版本中org.springframework.orm.hibernate3包下的所有类复制到你的新项目源码路径下,这些类是开源可独立复用的,即可保证项目B中定义的AnnotationSessionFactoryBean正常实例化,无需修改原有配置。


内容的提问来源于stack exchange,提问作者Carlos Martel Lamas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:27:04