如何在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
相关产品推荐
相关产品推荐

