首页 > 解决方案 > 使用 mongotemplate 时出现 ClassNotFound 异常

问题描述

运行使用 mongo 模板的 Spring Boot 应用程序时出现以下异常:

Caused by: java.lang.ClassNotFoundException: org.springframework.data.mongodb.MongoDatabaseFactory

这是主要代码:

package com.example.redismongo.mongodb;



import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.config.EnableMongoAuditing;
import org.springframework.data.mongodb.core.MongoTemplate;

@Configuration
@EnableMongoAuditing
public class MongoConfiguration {


    @Bean
    public MongoClient mongo(){
        return MongoClients.create("mongodb://localhost:27017");
    }

    @Primary
    @Bean(name = "mongoTemplate")
    public MongoTemplate mongoTemplate(){
        return new MongoTemplate(mongo(), "test");
    }


}


plugins {
    id 'org.springframework.boot' version '2.4.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation group: 'org.springframework.data', name: 'spring-data-commons', version: '2.2.8.RELEASE'
    implementation group: 'org.springframework.data', name: 'spring-data-mongodb', version: '2.2.8.RELEASE'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

我需要测试 2.2.8 版本,因为这是工作中使用的版本。我正在尝试在我的电脑中测试它的一些功能以测试某些失败场景。我怎样才能使 2.2.8 工作?

标签: javamongodbspring-bootspring-data-mongodb

解决方案


尝试添加spring-boot-starter-data-mongodb而不是spring-data-mongodb


推荐阅读