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

Spring Boot内嵌MongoDB连接被拒绝问题求助

嘿,我之前在测试Spring Boot内嵌MongoDB的时候也踩过这个连接拒绝的坑,咱们一步步来排查解决:

1. 先确认内嵌Mongo的依赖有没有加对

Spring Boot本身不会自动引入内嵌Mongo的依赖,你得手动加上Flapdoodle的内嵌Mongo包,同时确保Spring Data MongoDB的starter也在依赖里。

如果是Maven项目,在pom.xml里加这些:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
    <groupId>de.flapdoodle.embed</groupId>
    <artifactId>de.flapdoodle.embed.mongo</artifactId>
    <scope>test</scope>
</dependency>

Gradle的话就在build.gradle里加:

implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
testImplementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo'

2. 检查测试类的注解配置

你现在的测试类用了@SpringBootTest(classes=MongoConfig.class),这里可能有问题:如果你的MongoConfig是自定义的Mongo配置类,它可能没有启用内嵌Mongo的自动配置逻辑。

最简单的解决办法是:

  • 要么去掉classes=MongoConfig.class参数,让Spring Boot自动加载所有配置(包括内嵌Mongo的自动配置)
  • 要么给测试类加上@AutoConfigureEmbeddedMongo注解,强制启动内嵌Mongo实例

修改后的测试类应该是这样:

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureEmbeddedMongo
@TestPropertySource(locations = "classpath:application-test.properties")
public class Test_TimezoneDao {
    // 你的测试代码
}

3. 检查测试环境的配置文件(application-test.properties)

如果你的配置文件里写了spring.data.mongodb.host、spring.data.mongodb.port或者spring.data.mongodb.uri,指向的是外部MongoDB(比如本地的27017端口,但你没启动外部Mongo),那肯定会报连接拒绝。

解决办法:

  • 直接删掉这些MongoDB连接配置,让Spring Boot自动使用内嵌Mongo的默认配置
  • 或者明确指定用随机端口(让内嵌Mongo自己分配端口):
spring.data.mongodb.port=0

4. 排查自定义MongoConfig的冲突

如果你的MongoConfig类里手动创建了MongoClient或者MongoTemplate,那它可能会覆盖Spring Boot自动配置的内嵌Mongo实例。

这时候可以:

  • 在测试类上用@EnableAutoConfiguration(exclude = MongoConfig.class),禁用自定义配置,改用自动配置的内嵌Mongo
  • 或者修改MongoConfig,让它在测试环境下优先使用内嵌Mongo的配置(比如通过@Profile注解区分环境)

5. 极端情况:内嵌Mongo启动超时

有时候系统资源不足或者网络限制,会导致内嵌Mongo启动太慢,超过默认超时时间。你可以在application-test.properties里增加超时时间:

spring.mongodb.embedded.timeout=30000

先从前面两点开始排查,这是最常见的问题,应该能解决你的连接拒绝错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:09:38