我正在升级我们的一个项目的Spring版本,因此MongoDB库也必须升级。
我无法跟踪MongoDB库的前一个版本是什么,但当前版本是3.9.1。
我有下面的一段代码,因为升级而不工作,我应该如何重写它?
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.ServerAddress;
public sampleMethod() {
MongoClient client = null;
if (...) {
List<ServerAddress> saList = new ArrayList<>();
for (...) {
saList.add(...);
}
client = new MongoClient(saList);
} else if (...) {
MongoClientURI mongoClientURI = new MongoClientURI("mongodb://...");
client = new MongoClient(mongoClientURI);
} else {
MongoClientURI mongoClientURI = new MongoClientURI("mongodb://..." + this.encryptedProperties.getProperty("mongo.username") + "....");
client = new MongoClient(mongoClientURI);
}
return new MongoTemplate(client, srcDbname);
}
现在的问题是return语句,因为在2.1版本之后,MongoTemplate
的签名现在是public MongoTemplate(com.mongodb.client.MongoClient mongoClient, String databaseName)
。在2.1版本之前,它是public MongoTemplate(com.mongodb.MongoClient mongoClient, String databaseName)
。
我正在查看MongoClient
接口的documentation(com.mongodb.client.MongoClient
包)&它声明“这个类的示例可以通过MongoClients
工厂来创建。”查看MongoClients
,方法不能适应使用参数List<ServerAddress>
创建MongoClient
,与MongoClient
(com.mongodb.MongoClient
封装)相同。
| Package |旧版本|链接|新版本|链接|
| - ------|- ------|- ------|- ------|- ------|
| 蒙戈-java-驱动程序/ com.蒙戈数据库|不确定,找不到,但会更新|- -|三、九、一|https://www.javadoc.io/static/org.mongodb/mongo-java-driver/3.9.1/index.html|
| org.springframework.data:蒙古Spring Data 库| 2.0.8.RELEASE |https://docs.spring.io/spring-data/mongodb/docs/2.0.8.RELEASE/api/|三、二、零|https://docs.spring.io/spring-data/mongodb/docs/3.2.0/api/|
我是一个初级开发人员(6个月的工作经验),对项目版本升级不太熟悉,请耐心等待,谢谢您的理解
我不知道如何进行,我目前正在阅读文档&做一些谷歌搜索,看看可能的解决方案会是什么
我没有MongoDB的经验
1条答案
按热度按时间xoshrz7s1#
看起来您要升级到Spring Data MongoDB的3.2版本,根据参考文档,主要版本系列(3.x)要求您使用MongoDB Java驱动程序的4.x版本。
7.1.依赖关系更改导入现在被拆分为包含单独的工件,而不是单个工件uber-jar mongo-java-driver:
用户名:mongodb-驱动程序-核心(必填)
org.mongodb:mongodb驱动程序同步(可选)
org.mongodb:mongodb-驱动程序-活动流(可选)
根据应用程序的不同,mongodb-driver-sync,mongodb-driver-reactive流中的一个工件是必需的,紧挨着必需的mongodb-driver-core。如果需要,可以在一个应用程序中合并同步和React驱动程序。