带有Sping Boot 应用程序的mongodb java驱动程序- Spring驱动程序还是官方驱动程序?[已关闭]

js81xvg6  于 2023-02-28  发布在  Java
关注(0)|答案(2)|浏览(255)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
3天前关闭。
Improve this question
我想知道,使用Sping Boot java驱动和官方MongoDB有什么区别?
至于与spring的集成,性能,升级能力,支持?spring版本驱动程序的底层实现是什么?
你们对使用Angular的Sping Boot REST应用程序有什么建议?
是否可以在Spring应用程序中使用官方MongoDB驱动程序,利用依赖注入等优势?
谢谢

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.9.0</version>
</dependency>

以及

<dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>4.0.1</version>
    </dependency>

另外,当使用Mongo驱动程序时,Mongo的Spring配置会发生什么变化?

<mongo:mongo host="127.0.0.1" port="27017" write-concern="NORMAL">
        <mongo:options connections-per-host="50"
                   threads-allowed-to-block-for-connection-multiplier="4"
                   connect-timeout="360000"
                   max-wait-time="360000"
                   auto-connect-retry="true"
                   socket-keep-alive="true"
                   socket-timeout="360000"
                   slave-ok="true"
                   write-number="1"
                   write-timeout="0"
                   write-fsync="false"/>
    </mongo:mongo>

    <!-- MongoTemplate for connecting and quering the documents in the database -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongo" ref="mongo" />
        <constructor-arg name="databaseName" value="xerox" />
        <constructor-arg name="userCredentials" ref="mongoCredentials" />
    </bean>
 
    <bean id="mongoCredentials" class="org.springframework.data.authentication.UserCredentials">
        <constructor-arg name="username" value="xerox.u" />
        <constructor-arg name="password" value="xerox.p" />
    </bean>
    <!-- Use this post processor to translate any MongoExceptions thrown in @Repository annotated classes -->
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
xuo3flqw

xuo3flqw1#

Spring数据MongoDB

来自Spring Data MongoDB文档(https://spring.io/projects/spring-data-mongodb):
Spring Data for MongoDB是Spring Data项目的一部分,该项目旨在为新的数据存储库提供一个熟悉且一致的基于Spring的编程模型,同时保留特定于存储库的特性和功能。
Spring Data MongoDB项目提供了与MongoDB文档数据库的集成,Spring Data MongoDB的关键功能领域是一个以POJO为中心的模型,用于与MongoDB DBCollection交互,并轻松编写Repository样式的数据访问层。
这意味着:spring-data-mongodb将提供所有"花哨"的东西来创建spring驱动的应用程序,例如将POJO转换为mongodb文档,创建Repository接口等。
如果查看spring-data-mongodb依赖项,您可以看到它使用mongodb-driver-sync连接到数据库。

蒙哥-司机

mongodb-driver只提供驱动程序,也就是连接接口,这样你就可以连接到MongoDB数据库并运行查询等等,但是它不会提供简单的Spring Repository接口。

选择什么?

这取决于你的需要。如果你有一个Spring应用程序,你可以使用spring-data-mongodb,这样你就可以使用非常简单和强大的接口连接到数据库。但是如果你的应用程序没有使用Spring,那么你就不能使用spring-data的所有功能,所以在这种情况下最好的选择是只导入mongodb-driver,以减少依赖性。

iq3niunx

iq3niunx2#

Spring Boot包含MongoDB驱动程序作为其自动配置的一部分。
当您添加spring-boot-starter-data-mongodb依赖项到您的项目时,Spring Boot将自动为您配置一个'MongoTemplate'、'MongoRepository'和其他相关的MongoDB组件。这允许您从应用程序轻松地与MongoDB数据库交互,而无需手动配置和管理MongoDB驱动程序。
至于是否值得使用这个版本的驱动程序,这取决于您的具体用例和需求。Spring Boot通常包含一个稳定的最新版本的MongoDB驱动程序,因此它应该是一个可靠的选择。
是否可以在Spring应用程序中使用官方MongoDB驱动程序,利用依赖注入等优势?
是的,在Spring应用程序中使用官方的MongoDB驱动程序并利用Spring的依赖注入功能是完全可能的。
一旦依赖关系就位,就可以使用Spring的DI将MongoClient和MongoDatabase类的示例注入到应用程序中需要它们的任何地方。

相关问题