当前位置: 首页 > 知识库问答 >
问题:

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

靳越
2023-03-14

我有两个Mongodb数据库连接到一个Spring Boot应用程序,其中有两个MongoTemplate-s:

mongoTemplate(默认的bean名称,连接到默认的db)

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

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

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

我找到了一种使用XML(下面的链接)的方法,但我真的希望所有这些都基于注释

Spring data mongodb在一个Mongo实例中连接到多个数据库

共有1个答案

盖嘉珍
2023-03-14

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

  • com。无论什么仓库。主要数据库存储库接口的主包
  • com。无论什么仓库。其他数据库存储库接口的辅助包

您的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"/>

编辑

@EnableMongorPositories注释不是可重复的,但您可以有两个@Configuration类,每个类都用@EnableMongorPositories注释,以便使用注释实现相同的功能:

@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其他两个。

 类似资料:
  • 问题内容: 我有2个Mongodb数据库通过2个MongoTemplate-s连接到Spring Boot应用程序: mongoTemplate (默认的bean名称,连接到默认的db) mongoAppTemplate (在运行时连接到另一个数据库) 我有很多使用mongoTemplate的MongoRepository-,但我也想创建一些使用mongoAppTemplate的东西。 如何配置2

  • 对于使用具有多核支持的存储库使用solr设置Spring数据,是否有详细而完整的解释?

  • 我需要在我的服务中使用多个缓存以实现不同的用途。我正在寻找一种方法来分离它们的配置,如maximumSize和expireAfterWrite。我在部署中使用Spring和Kubernetes。yaml我有这个: 我想创建一个新的缓存,cacheC,它将有不同的配置。 我怎么能那样做?谢谢!

  • 我有一个代码片段,看起来像这样 配置类

  • 32.6 配置缓存存储 开箱即用,缓存抽象提供了多种存储集成。要使用它们,需要简单地声明一个适当的CacheManager - 一个控制和管理Caches,可用于检索这些存储。 32.6.1 JDK ConcurrentMap-based Cache 基于JDK的Cache实现位于org.springframework.cache.concurrent包下。它允许使用ConcurrentHashM

  • 我们正在Linux上运行的AzureV2云上测试hadoop HA集群。我们正在尝试切换到Azure BLOB存储。我们不确定应该如何使用Blob存储配置名称节点。我们收到以下错误: 我们不确定名称节点设置。原始设置中的两个name节点可能会过度使用,因为基础BLOB应该处理所有复制等。 谁能澄清一下吗?