关于spring-boot中mongodb包的一个奇怪的版本问题

一个spring-boot的项目中需要连接mongodb,于是在maven中引入了spring-boot-starter-data-mongodb。

  <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-mongodb</artifactId>
     <version>2.1.0.RELEASE</version>
     <scope>provided</scope>
  </dependency>

为什么引入2.1.0这么老旧的版本,是因为参考另外一个项目中MongoFactory的实现方法。

    String url = properties.getProperty("url");
    MongoClientURI mongoclienturi = new MongoClientURI(url);
    MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoclienturi);
    MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory);

这种写法在旧的项目里面运行完全正常,但是在新的项目里面却报错。


image.png

What???这个SimpleMongoDbFactory我不是已经import了吗???

import org.springframework.data.mongodb.core.SimpleMongoDbFactory;

为什么一个项目没有问题,一个项目报错???
于是我去对比两个项目的不同,发现dependency的版本号不一样。



旧的项目中spring-data-mongodb的版本是2.1.2。


image.png

而新的项目里面是3.0.0。

我开始怀疑maven出问题了,于是把这些包全部删除,刷新maven,还是一样的报错。
而且我在mvnrepository.com网站上看到spring-boot-starter-data-mongodb:2.1.0.RELEASE依赖的就是spring-data-mongodb:2.1.3.RELEASE啊


image.png

image.png

到底问题出在哪里?

最后发现问题不是出之spring-boot-starter-data-mongodb这一层,而是spring-boot-starter-parent这一层。
旧的项目用的是2.1.0.RELEASE,所以spring-data-mongodb的版本是2.1.2.RELEASE。
而新的项目用的是2.3.0.RELEASE,所以spring-data-mongodb的版本是3.0.0.RELEASE,这这个版本确实不支持SimpleMongoDbFactory。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前段时间分享了关于Spring Boot中使用Redis的文章,除了Redis之后,我们在互联网产品中还经常会用到...
    程序猿DD阅读 9,501评论 3赞 18
  • 1、什么是Spring boot ? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来...
    莫问以阅读 4,419评论 1赞 4
  • Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开...
    路人末阅读 474评论 0赞 4
  • 前段时间因为团队调整,大部分时间放在了团队上,这系列的更新又耽误了一下。但既然承诺持久更新,那就不会落下,今天开始...
    程序猿DD阅读 616评论 0赞 2
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 9,121评论 28赞 54

友情链接更多精彩内容