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

Spring Data MongoDB从1.9.6.RELEASE升级到2.0.0.RELEASE启动报错求助

解决Spring Data MongoDB升级至2.0.0.RELEASE与Spring Boot 1.4.2.RELEASE不兼容的问题

这个启动报错的核心原因是Spring Boot版本和Spring Data MongoDB版本不匹配,进而引发了方法实现缺失的AbstractMethodError。

版本兼容性背景

Spring Boot的版本和Spring Data系列的版本是严格绑定对应的:

  • Spring Boot 1.4.x对应的是Spring Data Gosling系列(版本号1.9.x)
  • Spring Data MongoDB 2.0.0.RELEASE属于Kay系列,这个系列仅兼容Spring Boot 2.0.x及以上版本

你现在强行在Spring Boot 1.4.2环境中使用Spring Data MongoDB 2.0.0,就会出现接口方法不匹配的问题——MongoRepositoryConfigurationExtension在2.0版本新增了getRepositoryFactoryClassName()方法,但旧版本的Spring Data Commons(由Spring Boot 1.4.2引入)会调用这个方法,而你的环境里的扩展类并没有实现它,最终抛出AbstractMethodError。

两种可行解决方案

  • 方案1:升级Spring Boot到兼容版本
    如果你一定要使用Spring Data MongoDB 2.0.0.RELEASE,需要把Spring Boot升级到2.0.x版本(比如2.0.9.RELEASE,是该系列的稳定版本)。升级后,Spring Boot会自动管理对应的Spring Data依赖版本,无需手动指定Spring Data MongoDB的版本,能有效避免版本冲突。

    修改后的pom依赖可以去掉版本号,让Spring Boot自动管理:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
    </dependency>
    
  • 方案2:使用Spring Boot 1.4.2对应的Spring Data MongoDB版本
    如果你暂时不想升级Spring Boot,那么需要保持Spring Data MongoDB在1.9.x系列,推荐使用该系列的最后一个稳定版本1.9.13.RELEASE,这样能保证和Spring Boot 1.4.2的完全兼容性:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.9.13.RELEASE</version>
    </dependency>
    

验证建议

不管选择哪种方案,修改pom后都建议清理本地Maven仓库的缓存(删除~/.m2/repository中相关的Spring Data和Spring Boot依赖),然后重新编译项目,避免缓存的旧依赖导致问题残留。

内容的提问来源于stack exchange,提问作者Divyang Agrawal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:22:33