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

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

  
     org.springframework.boot
     spring-boot-starter-data-mongodb
     2.1.0.RELEASE
     provided
  

为什么引入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。

你可能感兴趣的:(关于spring-boot中mongodb包的一个奇怪的版本问题)