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

如何在Spring Boot项目中避免自动下载嵌入式MongoDB

如何阻止嵌入式MongoDB自动下载

嘿,我来帮你搞定这个问题!你的项目里用了de.flapdoodle.embed.mongo和embedmongo-spring这两个依赖,它们默认会自动下载MongoDB的二进制文件,想要避免这个行为,可以试试下面几种方法:

方法一:通过配置禁用自动下载或指定本地MongoDB路径

你可以在项目的配置文件(application.properties或application.yml)里添加相关配置,告诉嵌入式Mongo不要自动下载,而是用你本地已有的MongoDB二进制文件:

使用properties文件:

# 完全禁用嵌入式Mongo(如果生产环境用外部MongoDB的话推荐这个)
embedmongo.enabled=false

# 或者指定本地MongoDB的mongod路径,这样就不会去下载了
# embedmongo.path=/usr/local/bin/mongod  # 替换成你本地的实际路径

使用YAML文件:

embedmongo:
  enabled: false  # 禁用嵌入式Mongo
  # path: /usr/local/bin/mongod  # 可选:指定本地mongod路径

另外,也可以直接在pom.xml里添加Maven属性来跳过下载:

<properties>
    <!-- 跳过Flapdoodle的MongoDB二进制下载 -->
    <de.flapdoodle.embed.mongo.skip>true</de.flapdoodle.embed.mongo.skip>
</properties>

方法二:限制嵌入式Mongo仅在测试环境使用

如果你的嵌入式Mongo只是用来做测试,不需要在生产环境运行,那可以把相关依赖的scope改成test,这样只有在执行测试代码时才会加载这些依赖,生产环境打包时不会包含它们,自然也就不会触发下载了:

修改你pom.xml里的这两个依赖:

<dependency>
    <groupId>de.flapdoodle.embed</groupId>
    <artifactId>de.flapdoodle.embed.mongo</artifactId>
    <version>1.50.5</version>
    <scope>test</scope>  <!-- 添加这行 -->
</dependency>
<dependency>
    <groupId>cz.jirutka.spring</groupId>
    <artifactId>embedmongo-spring</artifactId>
    <version>RELEASE</version>
    <scope>test</scope>  <!-- 添加这行 -->
</dependency>

额外注意

如果生产环境要连接外部MongoDB,记得在配置文件里正确设置MongoDB的连接信息,比如:

spring.data.mongodb.uri=mongodb://your-mongo-host:27017/your-database-name

这样Spring Boot就会自动连接外部Mongo实例,不会尝试启动嵌入式Mongo了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:07:49