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

Spring Boot连接MongoDB始终默认连test库,如何切换至product库?

Spring Boot 连接MongoDB指定product数据库问题解决

正确配置方式

以下两种配置二选一,不要同时使用(spring.data.mongodb.uri优先级高于分散配置,同时存在会忽略分散配置):

方式1:使用URI配置

spring.data.mongodb.uri=mongodb://localhost:27017/product

方式2:分散配置

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=product

排查与修复步骤

  1. 清理无效配置
    删除你之前尝试的自定义MongoConfig类,Spring Boot的自动配置已经能处理基础连接需求,自定义配置容易引发Bean注入错误(比如你遇到的Error creating bean with name 'mongoConfig': Injection of autowired dependencies failed)。

  2. 验证配置文件位置
    确保application.properties放在src/main/resources目录下,这是Spring Boot默认加载配置文件的路径,避免因文件位置错误导致配置未生效。

  3. 检查Repository接口
    确认你的ProductRepository继承自MongoRepository,且未指定其他数据库:

    import org.springframework.data.mongodb.repository.MongoRepository;
    
    public interface ProductRepository extends MongoRepository<Product, String> {
    }
    
  4. 验证连接日志
    启动应用后,在日志中搜索MongoClient相关内容,正常情况下会打印类似Connected to mongodb://localhost:27017/product的日志,确认数据库名称是否为product。

  5. 重启服务与容器
    重启Spring Boot应用和MongoDB容器,避免因缓存或容器状态异常导致连接未更新。

常见失效原因

  • 同时存在URI配置和分散配置,导致分散的database配置被忽略;
  • 配置文件放置位置错误,未被Spring Boot加载;
  • 自定义MongoConfig类覆盖了自动配置,强制连接到默认的test数据库;
  • 依赖冲突:确保仅引入spring-boot-starter-data-mongodb,避免同时引入其他MongoDB相关依赖(如mongo-java-driver)导致版本冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:22:41