在SpringBoot提供的com.mongodb.client包中找不到MongoClient类



几个小时我试图找到这个问题的解决方案,但无法解决它为我自己。问题是,我的Spring引导应用程序需要一个蒙古配置类,它应该创建一个蒙古客户端对象,以便进一步使用创建一个蒙古模板对象,似乎我没有必要的依赖关系。我很好奇,如果Spring没有自动提供它,或者我做错了什么,但是每个关于如何创建mongoTemplate Bean的指南都说它是如此简单-"只需用MongoClient对象创建一个配置类,blablabla,它就准备好了!"但是我甚至不会用这门课。

Config类看起来是这样的(显示的导入不能被编译器识别):

...
import com.mongodb.MongoClient;
import com.mongodb.client.*;
import com.mongodb.client.MongoClient;    
import com.mongodb.client.MongoClients;
@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {
@Override
protected String getDatabaseName() {
return "pizzeria";
}
@Override
public MongoClient mongoClient() {
ConnectionString connectionString = new ConnectionString("mongodb://localhost:27017/pizzeria");
MongoClientSettings mongoClientSettings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.build();
return MongoClients.create(mongoClientSettings);
}
@Override
public Collection getMappingBasePackages() {
return Collections.singleton("pl.mvasio.pizzeria.data");
}
}
这是我的pom。xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>pl.mvasio</groupId>
<artifactId>pizzeria</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>pizzeria</name>
<description>Design and order your favorite pizza</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
</dependency>
<!--        <dependency>-->
<!--            <groupId>org.mongodb</groupId>-->
<!--            <artifactId>mongo-java-driver</artifactId>-->
<!--            <version>3.4.0</version>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>org.mongodb</groupId>-->
<!--            <artifactId>mongodb-driver-core</artifactId>-->
<!--            <version>3.4.0</version>-->
<!--        </dependency>-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

正如你所看到的,我已经尝试添加额外的依赖- mongo-java-driver,它有助于解决这个问题,但不幸的是提供了另一个,所以我需要解决这个问题。如有任何建议,我将不胜感激。

提前感谢。

您可以通过application.properties直接连接到mongo

spring.data.mongodb.uri=mongodb://user:pwd@ip1:port1,ip2:port2/database

使用此依赖项:

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>3.0.3.RELEASE</version>
</dependency>

也可以:

spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=<username specified on MONGO_INITDB_ROOT_USERNAME>
spring.data.mongodb.password=<password specified on MONGO_INITDB_ROOT_PASSWORD>
spring.data.mongodb.database=<the db you want to use>

取决于你的驱动程序。

你可以查看这个线程

最新更新