gpt4 book ai didi

spring - 使用 Spring Data Mongo 配置多个 MongoDB 存储库

转载 作者:行者123 更新时间:2023-12-01 18:31:07 30 4
gpt4 key购买 nike

我有 2 个 Mongodb 数据库连接到带有 2 个 MongoTemplate-s 的 Spring Boot 应用程序:

mongoTemplate(默认bean名称,连接到默认数据库)

mongoAppTemplate(在运行时连接到另一个数据库)

我有很多使用 mongoTemplate 的 MongoRepository,但我也想创建一些使用 mongoAppTemplate 的 MongoRepository。

如何配置 2 个 MongoRepository-s 以通过 Java 配置使用不同的 MongoTemplate-s ?

我找到了一种使用 XML 来完成此操作的方法(下面的链接),但我真的想保留所有基于注释的内容

Spring-data-mongodb connect to multiple databases in one Mongo instance

最佳答案

基本思想是将包含存储库的包层次结构分成两个不同的路径:

  • com.whatever.repositories.main 主数据库存储库接口(interface)包
  • com.whatever.repositories.secondary 用于其他数据库存储库接口(interface)的包

您的 XML 配置应该是这样的:

<mongo:repositories base-package="com.whatever.repositories.main" mongo-template-ref="mongoTemplate"/>
<mongo:repositories base-package="com.whatever.repositories.secondary" mongo-template-ref="mongoAppTemplate"/>

编辑

@EnableMongoRepositories注解不是@Repeatable,但你可以有两个@Configuration类,每个类都用@EnableMongoRepositories注解,以便使用注解实现相同的效果:

@Configuration
@EnableMongoRepositories(basePackages = "com.whatever.repositories.main", mongoTemplateRef = "mongoTemplate")
public class MainMongoConfig {
....
}

@Configuration
@EnableMongoRepositories(basePackages = "com.whatever.repositories.secondary", mongoTemplateRef = "mongoAppTemplate")
public class SecondaryMongoConfig {
....
}

第三个 @Configuration 注释类,其中 @Import 另外两个。

关于spring - 使用 Spring Data Mongo 配置多个 MongoDB 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60165024/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com