是否可以在弹簧靴中连接到两个不同的沙发底座桶

piy*_*ush 5 bucket couchbase spring-boot

我正在尝试使用弹簧靴连接到 couchbase 中的两个不同存储桶。但是在单个 Spring Boot 应用程序中,数据库配置仅采用单个存储桶名称。

是否可以在 spring-boot 中连接到多个沙发底桶?

Sim*_*slé 4

所以看来您想在 Spring Boot 应用程序中使用 Spring Data Couchbase,并且(至少)有两个不同的存储库由两个不同的支持Bucket

您必须以编程方式自定义 Spring Data 配置(而不是让 Spring Boot 完成所有繁重的工作),但这是可能的。

  • Spring Boot 创建一个CouchbaseConfigurer,通过它创建默认值ClusterBucket(如在属性文件中调整)。
  • 如果你CouchbaseRepository的类路径中有一个,它也会尝试通过实例化一个SpringBootCouchbaseDataConfiguration类来配置 Spring Data。
  • SpringBootCouchbaseDataConfiguration您可以通过在项目中扩展上述内容来自定义它,将其标记为@Configuration

一旦您准备好以编程方式自定义 Spring Data 配置,您需要创建第二个Bucketbean(第二个CouchbaseTemplate使用该存储桶的 bean),然后指示 Spring Data Couchbase 在哪个模板上使用哪个Repository.

为此,有一种configureRepositoryOperationsMapping(...)方法。您可以将此方法的参数用作构建器来:

  • 将特定Repository接口链接到CouchbaseTemplatemap
  • 假设任何具有特定实体类型的存储库都应该使用给定的模板:mapEntity
  • 甚至重新定义要使用的默认模板(最初由 Spring Boot 创建的模板):setDefault

第二部分在Spring Data Couchbase 文档中进行了解释。