使用Spring Data Mongo配置多个MongoDB存储库
我有2个Mongodb数据库连接到一个Spring Boot应用程序,其中有2个MongoTemplate-s: mongoTemplate(默认bean名称,连接到默认db) mongoAppTemplate(运行时连接到另一个数据库) 我有很多使用mongoTemplate的MongoRepository-s,但我也想创建一些使用mongoAppTemplate的 如何配置2个MongoRepository-s,以便在Java配置中使用不同的MongoTemplate-s? 我找到了一种使用XML(下面的链接)的方法,但我真的希望所有这些都基于注释使用Spring Data Mongo配置多个MongoDB存储库,spring,spring-mvc,spring-boot,spring-data,spring-data-mongodb,Spring,Spring Mvc,Spring Boot,Spring Data,Spring Data Mongodb,我有2个Mongodb数据库连接到一个Spring Boot应用程序,其中有2个MongoTemplate-s: mongoTemplate(默认bean名称,连接到默认db) mongoAppTemplate(运行时连接到另一个数据库) 我有很多使用mongoTemplate的MongoRepository-s,但我也想创建一些使用mongoAppTemplate的 如何配置2个MongoRepository-s,以便在Java配置中使用不同的MongoTemplate-s? 我找到了一种使用
基本思想是将包含存储库的包层次结构分为两个不同的路径:
- 主要数据库存储库接口的com.whatever.repositories.main包
- 其他数据库存储库接口的com.whatever.repositories.secondary包
<mongo:repositories base-package="com.whatever.repositories.main" mongo-template-ref="mongoTemplate"/>
<mongo:repositories base-package="com.whatever.repositories.secondary" mongo-template-ref="mongoAppTemplate"/>
第三个
@Configuration
注释类,它导入了另外两个
注释类。通过注释可以获得相同的结果吗?@orid想知道是否采取了这种方法,添加第三个@Configuration
注释类是多余的?否则,跳过前两个类中的@Configuration
注释,然后合并到第三个类中。如何动态配置它?我的意思是,我有一个模板列表,并希望根据特定条件使用其中一个模板。最后,如何将MongoRepository实例注入到我的服务中?请你把整个样品竞争一下好吗?非常感谢。Hi@OriDar,有没有办法通过repository模式在同一个实例中的两个mongo数据库之间切换?通过“保持所有注释为基础”,您是在谈论连接的Java配置吗?或者是关于如何在相同或不同的类中使用不同的连接的问题?
@Configuration
@EnableMongoRepositories(basePackages = "com.whatever.repositories.main", mongoTemplateRef = "mongoTemplate")
public class MainMongoConfig {
....
}
@Configuration
@EnableMongoRepositories(basePackages = "com.whatever.repositories.secondary", mongoTemplateRef = "mongoAppTemplate")
public class SecondaryMongoConfig {
....
}