【问题标题】:Upgrade mongo db to 3.2 in spring boot application在 Spring Boot 应用程序中将 mongo db 升级到 3.2
【发布时间】:2016-09-01 19:30:09
【问题描述】:

我正在使用 Spring Boot 1.2.8 和 Mongo db 2.4.10。我打算将 mongo db 升级到 3.2.0。

所以我在 pom 下面使用了当前的 sprinb boot 1.2.8,

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

我在 mongo-java-driver 版本 2.12.5 附带的依赖层次结构中看到

但我读到mongo java driver doc,它说即使是 2.14 版,它也不支持所有 MongoDB 3.2 功能(例如,阅读问题)

所以我将 spring boot 升级到 1.3.3 的最新版本,期望我会得到一个支持所有 mongo db 3.2 功能的 mongo-java-driver 版本 3.2。

但是我得到了带有 Springboot 1.3.3 的 mongo-java-driver 2.13.3

那么如何升级我的应用程序以支持 mongo db 3.2 版?

编辑:

用最新的spring boot 1.3.4下面是层次结构,

spring-boot-starter-data-mongodb 1.3.4 [compile]
    -mongo-java-driver 2.13.3 [compile]
        -spring-data-mongodb 1.8.4 [compile]
              -mongo-java-driver 2.13.3 [omitted for conflict with 2.13.3]

ref doc 说, Spring Data MongoDB 1.9 中的新增功能=>断言与 MongoDB 3.0 和 MongoDB Java Driver 3.2 的兼容性

Spring Data MongoDB 1.7 的新特性=>断言与 MongoDB 3.0 和 MongoDB Java Driver 3-beta3 的兼容性

所以说,如果我使用 spring boot 1.3.4 和上面提到的 spring boot 1.3.4,它会支持 mongo db 3.2 的所有功能,尽管我得到 spring-data-mongodb 1.8.4 是否正确?

【问题讨论】:

    标签: java spring mongodb maven spring-boot


    【解决方案1】:

    Spring Data MongoDB 构建在 MongoDB 的 Java 驱动程序之上。它使用它与 MongoDB 实例进行通信。要使用 Spring Data MongoDB,您需要它和 Java 驱动程序。

    Spring Data MongoDB support the 3.x driver。要使用它,您可以通过将以下内容添加到您的 pom 中来覆盖 Spring Boot 配置的驱动程序版本:

    <properties>
        <mongodb.version>3.2.2</mongodb.version>
    </properties>
    

    【讨论】:

    • 我明白了。那么spring-boot-starter-data-mongodb覆盖mongo java驱动的功能知道吗?在这种情况下,是否需要 mongo java 驱动程序?
    • 不,starter提供了两个MongoDB相关的依赖:Spring Data MongoDB和MongoDB的Java驱动。 Spring Data MongoDB 使用驱动程序与 MongoDB 对话。
    • 威林森 谢谢。我在 spring boot 1.3.4 中明确使用了 mongo java driver 3.2.2。我得到最新春天的春天 datamongo db 1.8。虽然文档说 spring data mongodb 1.9 支持 mongodb java driver 3.2,但我假设我获得了 mongodb 3.2.0 的所有功能。请查看我的编辑问题
    • @AndyWilkinson,我怎样才能用 gradle 做同样的事情?
    • @Leffchik 将ext['mongodb.version']='3.2.2' 添加到您的build.gradle
    【解决方案2】:

    在 pom.xml 文件中使用以下标签,您不必担心 spring 版本。您无需在 pom.xml 文件中提及任何 spring boot jar 版本。Spring IO 平台会处理它以包含兼容的 jars。

     <parent>
        <groupId>io.spring.platform</groupId>
        <artifactId>platform-bom</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2020-04-14
      • 2021-01-18
      • 1970-01-01
      • 2013-05-10
      • 2020-04-29
      相关资源
      最近更新 更多