**已关闭。**此问题不符合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" />
2条答案
按热度按时间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
,以减少依赖性。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类的示例注入到应用程序中需要它们的任何地方。