1、spring data 集成 mongodb报错:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘mongo’: Initialization of bean failed; nested exception is java.lang.TypeNotPresentException: Type com.mongodb.client.MongoClient not present
Caused by: java.lang.TypeNotPresentException: Type com.mongodb.client.MongoClient not present
原因:没有安装驱动
解决:
1、在正是开始之前,先学习下 Spring Data MongoDB 官方文档说明,可以理解的更透彻。地址:https://docs.spring.io/spring-data/mongodb/docs/3.4.9/reference/html/ (不同版本的文档也不同,可以把地址一步步退回来选择版本)
2、根据文档,发现几点:(本人使用的: Spring Data MongoDB 版本是3.4.9)
- 要求:Spring Data MongoDB 3.x 版本需要 JDK 8.0及以上版本 和 Spring 5.3.25及更高版本。至少MongoDB 3.6 版本。
- 兼容性:通过查看文档,针对这个 spring-data-mongodb 版本需要的 mongo-driver 版本为 4.6.x 以上
1、 安装驱动 mongo-driver,怎么安?直接导依赖,但是发现maven仓库中mongo-java-driver最高的版本只有3.x
2、假如spring-data-mongodb安装的版本低,则按照官方文档说明:需要的驱动就低,可以直接在maven仓库中找到依赖。但是这里安装的是3.4.9,需要的驱动版本是4.6.以上,怎么办?可以用其他的驱动
3、所以添加以下依赖:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.9.0</version>
</dependency>
2、假如还报错:
Caused by: java. lang. NoClassDefFoundError Create breakpoint:
com/ mongodb/internal/ diagnostics/logging/Loggers
解决:
安装的驱动版本太高了,比如要求4.6.x,安装成4.9.x,可以降级MongoDB驱动程序版本。
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.7.0</version>
</dependency>