SpringBoot MongoDB数据插入异常:本该存入EmulationDb却存入test库
排查SpringBoot MongoDB 数据库配置不生效的问题
嘿,这个问题我之前踩过一模一样的坑!先看你贴的配置内容,这里有个超容易忽略的拼写错误:
spring.data.mogodb.host=localhost
spring.data.mogodb.port=27017
spring.data.mogodb.database=EmulationDb
看到没?mogodb里少了一个字母n!正确的配置前缀应该是spring.data.mongodb(是mongodb,不是mogodb)。SpringBoot的自动配置组件识别不了错误的配置键,所以会直接 fallback 到MongoDB的默认数据库test,这就是为什么你的数据都跑到test库去了。
先把配置修正成正确的版本试试:
spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=EmulationDb
如果修正拼写后问题还存在,可以接着排查这几个方向:
- 确认配置文件位置:确保你的
application.properties放在src/main/resources目录下,没有被其他环境配置文件(比如application-dev.properties)或者命令行参数覆盖。 - 检查代码硬编码:看看有没有在
MongoTemplate的配置类里手动指定了test库,或者实体类的@Document注解里写死了数据库名称。 - 查看启动日志:启动应用时搜索
MongoClient相关的日志,里面会打印实际连接的数据库信息,能帮你确认配置是否真的生效了。 - 检查外部配置源:比如系统环境变量、配置中心的配置,这些的优先级比本地
application.properties高,可能悄悄覆盖了你的数据库配置。
内容的提问来源于stack exchange,提问作者Arvind Carpenter
相关产品推荐
相关产品推荐

