连接多个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组件】;文章来源:https://www.toymoban.com/news/detail-841599.html
MongoClientSettingsBuilderCustomizer —— 专门用于对容器中的 MongoClientSettings 进行定制,
因此可通过在容器中部署 MongoClientSettingsBuilderCustomizer 来定制 MongoClientSettings 。文章来源地址https://www.toymoban.com/news/detail-841599.html
到了这里,关于13、MongoDB--通过 SpringBoot 整合 Spring Data MongoDB(【连接多个 MongoDB 服务器】、【高级定制 MongoDB 客户端】的简单介绍)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!