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

Mongock配置报错:缺少ConnectionDriver Bean如何解决?

解决SpringBoot配置Mongock启动时缺少ConnectionDriver Bean的问题

问题原因

Mongock 5.x版本的自动配置依赖Spring Data MongoDB的基础组件,若依赖不全或自动配置未触发,Spring容器无法自动生成io.mongock.driver.api.driver.ConnectionDriver类型的Bean,导致启动失败。

解决方案

1. 补全必要依赖

确保pom.xml中包含Spring Data MongoDB的starter依赖,Mongock驱动需要依赖它获取Mongo连接资源。完整依赖示例:

<dependencies>
    <!-- Spring Data MongoDB Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <!-- Mongock SpringBoot Runner -->
    <dependency>
        <groupId>io.mongock</groupId>
        <artifactId>mongock-springboot</artifactId>
        <version>5.2.2</version>
    </dependency>
    <!-- Mongock MongoDB SpringData V3 Driver -->
    <dependency>
        <groupId>io.mongock</groupId>
        <artifactId>mongodb-springdata-v3-driver</artifactId>
        <version>5.2.2</version>
    </dependency>
</dependencies>

2. 验证MongoDB连接配置

确保application.yml中MongoDB的连接配置正确,Mongock驱动需要有效的Mongo连接才能初始化:

spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/your-database-name

mongock:
  enabled: true
  migration-scan-package: com.your.package.migrations # 替换为你的迁移类所在包

3. 手动注册ConnectionDriver Bean(若自动配置失效)

如果Spring自动配置未生成ConnectionDriver,可手动创建配置类注册Bean:

import io.mongock.driver.mongodb.springdata.v3.driver.MongoSpringDataV3Driver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.MongoTemplate;

@Configuration
public class MongockDriverConfig {

    @Bean
    public MongoSpringDataV3Driver mongockConnectionDriver(MongoTemplate mongoTemplate) {
        return MongoSpringDataV3Driver.withDefaultLock(mongoTemplate);
    }
}

4. 确认@EnableMongock注解位置

确保@EnableMongock注解添加在SpringBoot启动类上,且启动类所在包能扫描到迁移类和配置类:

import io.mongock.runner.springboot.EnableMongock;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableMongock
public class YourApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:15:33