13、MongoDB--通过 SpringBoot 整合 Spring Data MongoDB(【连接多个 MongoDB 服务器】、【高级定制 MongoDB 客户端】的简单介绍)

这篇具有很好参考价值的文章主要介绍了13、MongoDB--通过 SpringBoot 整合 Spring Data MongoDB(【连接多个 MongoDB 服务器】、【高级定制 MongoDB 客户端】的简单介绍)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

连接多个MongoDB服务器

放弃 Spring Boot 为 MongeDB 提供的自动配置,接下来同样要干如下事情:

手动配置多组 ReactiveMongoDatabaseFactory 和 ReactiveMongoTemplate,要连几个 MongoDB 服务器就配置几组。
同步 API 则使用 MongoDatabaseFactory 和 MongoTemplate。

针对不同 MongoDB 服务器,分别开发相应的 DAO 组件类,建议将它们放在不同的包下以便区分。

使用@EnableReactiveMongoRepositories注解手动开启DAO组件扫描。

同步API则使用@EnableMongoRepositories。类似于@EnableJpaRepositories注解。

使用 @EnableReactiveMongoRepositories 注解时要指定如下两个属性:

1、basePackages:指定扫描哪个包下的DAO组件。

2、reactiveMongoTemplateRef:指定使用哪个 ReactiveMongoTemplate 来实现 DAO 组件的方法。

同步 API 则使用 mongoTemplateRef 来指定引用 mongoTemplate 。



高级定制MongoDB客户端

若要完全控制连接 MongoDB 的过程,除了可在容器中配置自己的 ReactiveMongoDatabaseFactory 或 MongoDatabaseFactory 之外,配置自己的 MongoClient 也行。
MongoDatabaseFactory 或 ReactiveMongoDatabaseFactory 只是对 MongoClient的包装。

Spring Boot 通过 MongoClientSettings 创建自动配置的 MongoClient,
如果在容器中定义了自己的 MongoClientSettings ,
Spring Boot 将直接使用该 MongoClientSettings 来创建 MongoClient,
此时所有 spring.data.mongodb.* 属性都会被忽略。

如果没有配置自己的 MongoClientSettings,Spring Boot 就会读取并应用 spring.data.mongodb.* 开头的配置属性,
用于创建自动配置的 MongoClientSettings。

不管是容器自动配置的 MongoClientSettings,还是你手动配置的 MongoClientSettings,
都可在容器中部署一个或多个 MongoClientSettingsBuilderCustomizer 实现类的 Bean,
该 Bean 在实现接口中 customize(builder) 方法时,就可对 MongoClientSettings 进行自己的定制。

       DAO组件
         ↑
 MongoDatabaseFactory 和 MongoTemplate(反应式要加Reactive)
         ↑
     MongoClient      可在容器中配置自己的MongoClient来代替自动配置的MongoClient。
         ↑
  MongoClientSettings(原本它会读取application.properties文件) 也可用自己配置的MongoClientSettingsBean来代替它。

【MongoClientSettings】负责创建【MongoClient】;

【MongoClient】负责创建【MongoDatabaseFactory】和【MongoTemplate】;

通过【MongoDatabaseFactory】或者【MongoTemplate】来创建【DAO组件】;

MongoClientSettingsBuilderCustomizer —— 专门用于对容器中的 MongoClientSettings 进行定制,
因此可通过在容器中部署 MongoClientSettingsBuilderCustomizer 来定制 MongoClientSettings 。文章来源地址https://www.toymoban.com/news/detail-841599.html

到了这里,关于13、MongoDB--通过 SpringBoot 整合 Spring Data MongoDB(【连接多个 MongoDB 服务器】、【高级定制 MongoDB 客户端】的简单介绍)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot --- 整合spring-data-jpa和spring-data-elasticsearch

    SpringBoot: 整合Ldap. SpringBoot: 整合Spring Data JPA. SpringBoot: 整合Elasticsearch. SpringBoot: 整合spring-data-jpa和spring-data-elasticsearch. SpringBoot: 整合thymeleaf. SpringBoot: 注入第三方jar包. SpringBoot: 整合Redis. SpringBoot: 整合slf4j打印日志. SpringBoot: 整合定时任务,自动执行方法. SpringBoot: 配置多数据源

    2023年04月25日
    浏览(73)
  • SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Spring Data是一个用于简化数据库访问和操作的开源框架,为开发人员提供了一种通用的方式来处理不同类型的数据存储,例如关系型数据库(如MySQL、PostgreSQL、Oracle)和非关系型数据库(如MongoDB、Cassandra、Redis)等。

    2024年02月12日
    浏览(51)
  • Springboot 实践(13)spring boot 整合RabbitMq

    前文讲解了RabbitMQ的下载和安装,此文讲解springboot整合RabbitMq实现消息的发送和消费。 1、创建web project项目,名称为“SpringbootAction-RabbitMQ” 2、修改pom.xml文件,添加amqp使用jar包    !--  RabbitMQ --         dependency             groupIdorg.springframework.boot/groupId         

    2024年02月09日
    浏览(60)
  • SpringBoot整合Spring Data Elasticsearch,写给互联网大厂员工的真心话

    @RunWith(SpringRunner.class) @SpringBootTest(classes = ItcastElasticsearchApplication.class) public class IndexTest { @Autowired private ElasticsearchTemplate elasticsearchTemplate; //注入ElasticsearchTemplate类 @Test public void testCreate(){ // 创建索引,会根据Item类的@Document注解信息来创建 elasticsearchTemplate.createIndex(Item.class)

    2024年04月14日
    浏览(71)
  • 09、全文检索 -- Solr -- SpringBoot 整合 Spring Data Solr (生成DAO组件 和 实现自定义查询方法)

    测试类使用 solrClient 进行添加、查询、删除文档的操作在这篇的代码基础上继续演示的 两篇文章的区别: 上一篇是通过SolrClient 连接 Solr,然后用 SolrClient 来调用查询方法进行全文检索 这一篇是 自定义dao组件,通过继承CrudRepository 接口,用 dao 接口来调用查询方法进行全文检

    2024年02月19日
    浏览(57)
  • [Spring boot] Spring boot 整合RabbitMQ实现通过RabbitMQ进行项目的连接

     🍳作者:天海奈奈 💭眼过千遍不如手锤一遍:推荐一款模拟面试,斩获大厂 o f f e r ,程序员的必备刷题平台 − − 牛客网  👉🏻点击开始刷题之旅 目录 什么是RabbitMQ   消息队列:接受并转发消息,类似于快递公司 消息队列的优点 消息队列的特性 RabbitMQ特点 RabbitMQ核

    2024年01月24日
    浏览(83)
  • 18、全文检索--Elasticsearch-- SpringBoot 整合 Spring Data Elasticsearch(异步方式(Reactive)和 传统同步方式 分别操作ES的代码演示)

    启动命令行窗口,执行:elasticsearch 命令即可启动 Elasticsearch 服务器 三种查询方式解释: 方法名查询: 就是全自动查询,只要按照规则来定义查询方法 ,Spring Data Elasticsearch 就会帮我们生成对应的查询语句,并且生成方法体。 @Query 查询 : 就是半自动查询, 按照 S

    2024年03月12日
    浏览(67)
  • 【Spring连载】使用Spring Data访问 MongoDB(一)----快速指南

    Spring Data MongoDB 4.x二进制文件需要JDK级别17及以上版本和Spring Framework 6.1.4及以上版本。 在数据库和驱动程序方面,你需要至少4.x版本的MongoDB和兼容的MongoDB Java驱动程序(4.x或5.x)。 首先,需要设置一个正在运行的MongoDB服务器。请参考MongoDB安装指南,了解如何启动MongoDB实例

    2024年02月21日
    浏览(53)
  • Spring Data访问 MongoDB(十六)----CDI集成

    存储库接口的实例通常由容器创建,在使用Spring Data时,Spring是最自然的选择。从1.3.0版本开始,Spring Data MongoDB附带了一个自定义的CDI扩展,允许你在CDI环境中使用存储库抽象。扩展是JAR的一部分。要激活它,请将Spring Data MongoDB JAR放入类路径中。现在,你可以通过为MongoTem

    2024年03月12日
    浏览(51)
  • 【MongoDB】SpringBoot整合MongoDB

    引入依赖: 1.1 创建集合 创建一个 ”products“ 集合,如果不存在则创建,存在则不创建。 1.2 删除集合 @Document 修饰范围:用在类上 作用:用来映射这个类的一个对象为 mongo 中一条文档数据 属性:{value、collection} 用来指定操作的集合名称 @Id 修饰范围:用在成员变量、方法上

    2024年02月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包