連接多個(gè)MongoDB服務(wù)器
放棄 Spring Boot 為 MongeDB 提供的自動(dòng)配置,接下來(lái)同樣要干如下事情:
手動(dòng)配置多組 ReactiveMongoDatabaseFactory 和 ReactiveMongoTemplate,要連幾個(gè) MongoDB 服務(wù)器就配置幾組。
同步 API 則使用 MongoDatabaseFactory 和 MongoTemplate。
針對(duì)不同 MongoDB 服務(wù)器,分別開(kāi)發(fā)相應(yīng)的 DAO 組件類,建議將它們放在不同的包下以便區(qū)分。
使用@EnableReactiveMongoRepositories注解手動(dòng)開(kāi)啟DAO組件掃描。
同步API則使用@EnableMongoRepositories。類似于@EnableJpaRepositories注解。
使用 @EnableReactiveMongoRepositories 注解時(shí)要指定如下兩個(gè)屬性:
1、basePackages:指定掃描哪個(gè)包下的DAO組件。
2、reactiveMongoTemplateRef:指定使用哪個(gè) ReactiveMongoTemplate 來(lái)實(shí)現(xiàn) DAO 組件的方法。
同步 API 則使用 mongoTemplateRef 來(lái)指定引用 mongoTemplate 。
高級(jí)定制MongoDB客戶端
若要完全控制連接 MongoDB 的過(guò)程,除了可在容器中配置自己的 ReactiveMongoDatabaseFactory 或 MongoDatabaseFactory 之外,配置自己的 MongoClient 也行。
MongoDatabaseFactory 或 ReactiveMongoDatabaseFactory 只是對(duì) MongoClient的包裝。
Spring Boot 通過(guò) MongoClientSettings 創(chuàng)建自動(dòng)配置的 MongoClient,
如果在容器中定義了自己的 MongoClientSettings ,
Spring Boot 將直接使用該 MongoClientSettings 來(lái)創(chuàng)建 MongoClient,
此時(shí)所有 spring.data.mongodb.* 屬性都會(huì)被忽略。
如果沒(méi)有配置自己的 MongoClientSettings,Spring Boot 就會(huì)讀取并應(yīng)用 spring.data.mongodb.* 開(kāi)頭的配置屬性,
用于創(chuàng)建自動(dòng)配置的 MongoClientSettings。
不管是容器自動(dòng)配置的 MongoClientSettings,還是你手動(dòng)配置的 MongoClientSettings,
都可在容器中部署一個(gè)或多個(gè) MongoClientSettingsBuilderCustomizer 實(shí)現(xiàn)類的 Bean,
該 Bean 在實(shí)現(xiàn)接口中 customize(builder) 方法時(shí),就可對(duì) MongoClientSettings 進(jìn)行自己的定制。
DAO組件
↑
MongoDatabaseFactory 和 MongoTemplate(反應(yīng)式要加Reactive)
↑
MongoClient 可在容器中配置自己的MongoClient來(lái)代替自動(dòng)配置的MongoClient。
↑
MongoClientSettings(原本它會(huì)讀取application.properties文件) 也可用自己配置的MongoClientSettingsBean來(lái)代替它。
【MongoClientSettings】負(fù)責(zé)創(chuàng)建【MongoClient】;
【MongoClient】負(fù)責(zé)創(chuàng)建【MongoDatabaseFactory】和【MongoTemplate】;
通過(guò)【MongoDatabaseFactory】或者【MongoTemplate】來(lái)創(chuàng)建【DAO組件】;文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-841599.html
MongoClientSettingsBuilderCustomizer —— 專門用于對(duì)容器中的 MongoClientSettings 進(jìn)行定制,
因此可通過(guò)在容器中部署 MongoClientSettingsBuilderCustomizer 來(lái)定制 MongoClientSettings 。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-841599.html
到了這里,關(guān)于13、MongoDB--通過(guò) SpringBoot 整合 Spring Data MongoDB(【連接多個(gè) MongoDB 服務(wù)器】、【高級(jí)定制 MongoDB 客戶端】的簡(jiǎn)單介紹)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!