Spring Boot连接MongoDB时出现Bean创建异常求助
解决Spring Data MongoDB与MongoDB Driver Sync版本不兼容导致的NoClassDefFoundError问题
核心原因
你遇到的java.lang.NoClassDefFoundError: com/mongodb/internal/connection/StreamFactoryHelper是Spring Data MongoDB与MongoDB Driver Sync版本不匹配引发的类结构冲突。Spring Data MongoDB 4.1.5依赖的MongoDB驱动版本范围是4.9.x,而你手动引入的4.11.1版本中,StreamFactoryHelper类的定义或位置已发生变化,导致Spring Data无法找到该类。
解决步骤
- 移除手动添加的
mongodb-driver-sync依赖:Spring Data MongoDB已经内置了对MongoDB驱动的依赖,手动添加高版本驱动会引发依赖冲突。修改你的Gradle配置,删除mongodb-driver-sync:4.11.1这一行。 - 依赖Spring自动版本管理:Spring Data MongoDB 4.1.5(属于2023.0.x Ullrich发布列车)会自动适配4.9.x版本的MongoDB Driver,无需手动指定驱动版本。
- 清理并刷新依赖:执行以下命令清理Gradle缓存并重新拉取正确的依赖:
./gradlew clean build --refresh-dependencies - 删除手动创建MongoClient的代码:
@EnableMongoRepositories已经开启了Spring Data MongoDB的自动配置,Spring会读取spring.data.mongodb.uri配置自动生成MongoClient、MongoTemplate等Bean,无需手动实例化。
验证方法
重新启动应用,若配置正确,Spring会自动完成MongoDB连接初始化,不会再出现Bean创建异常。
内容的提问来源于stack exchange,提问作者Luca Ferretti
相关产品推荐
相关产品推荐

