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

Spring Boot 2.x连接MongoDB报错:MongoDbFactory已废弃如何解决

问题原因

Spring Boot 2.6.x 适配的Spring Data MongoDB版本已废弃org.springframework.data.mongodb.MongoDbFactory接口,替换为org.springframework.data.mongodb.MongoDatabaseFactory。框架自动配置阶段仅注册MongoDatabaseFactory类型的Bean,因此自定义MongoTemplate时注入旧的MongoDbFactory会触发找不到Bean的启动异常。
此外手动指定mongo-java-driver版本属于多余配置,spring-boot-starter-data-mongodb会自动引入与当前版本完全兼容的驱动,手动指定版本反而可能引发依赖冲突。

修复步骤
  • 修正Maven依赖:删除手动添加的org.mongodb:mongo-java-driver依赖,引入官方MongoDB Starter,依赖版本由Spring Boot父工程自动管理:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
  • 重写MongoDB配置类:将配置中注入的MongoDbFactory替换为MongoDatabaseFactory,其余自定义映射逻辑保持不变,完整代码如下:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;

@Configuration
public class MongoDBConfiguration {

    @Bean
    public MongoTemplate mongoTemplate(MongoDatabaseFactory mongoDbFactory, MongoMappingContext context) {                
        MappingMongoConverter converter = new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory), context);
        // 去除写入MongoDB时自动添加的_class字段
        converter.setTypeMapper(new DefaultMongoTypeMapper(null));
        return new MongoTemplate(mongoDbFactory, converter);
    }
    
}
  • 原有连接配置无需调整:配置文件中spring.data.mongodb.uri=mongodb://mypath可正常被框架读取,不需要修改。
验证结果

修改后重启项目,MongoDatabaseFactory会被Spring Boot自动配置类正常注册,自定义MongoTemplate可以完成初始化,原有去除_class字段的自定义逻辑完全保留,不影响所有MongoDB操作。

内容的提问来源于stack exchange,提问作者Atique Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 12:45:27