使用spring data mongo 多数据源如何切换 使用注解形式 不影响使用 MongoRepository 接口方案。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用spring data mongo 多数据源如何切换 使用注解形式 不影响使用 MongoRepository 接口方案。相关的知识,希望对你有一定的参考价值。

例子:
接口:public interface SpringDataImp extends MongoRepository<SpringData, Integer>
调用
@Resource
SpringDataImp sim;
默认为id 为 mongoTemplate 数据库
如何切换其他id 的数据库。。

改成 extends CurbRepository 可以吧追问

那个只是MongoRepository 一个父接口 结果还是一样的啊。

追答

sorry,理解错误。我以为是从mongodb转换其他数据源。你的意思多个mongodb之间切换?
你应该有配置文件或者配置类来指定数据库的,修改配置或者配置类即可,难道你是要在Runtime期切换吗?

参考技术A 有点小模糊你说的东西哦!这个id哪来的啊!是interger么,多数据源切换的话SpringData的东西通用么

Morphia vs Spring Data Mongo

【中文标题】Morphia vs Spring Data Mongo【英文标题】: 【发布时间】:2016-10-01 18:44:34 【问题描述】:

我正在使用 Java 语言。我必须使用带有 MongoDb 的 ORM 框架作为数据库。我有两个选项 Morphia 或 Spring Data Mongo 支持。据我所知,我发现 Spring Data Mongo 更好使用自: 1)它提供了更好的DAO开箱即用的内置类。 2)拥有更大的社区基础。

两者之间是否存在任何基于性能的差异。如果在哪种情况下哪一个更好。另外我有多租户的要求。经过少量搜索后,我发现 Spring Data Mongo 中有非常简单的自定义实现来做一样。但是在 Morphia 中有点困难。在 Morphia 中实现多租户是否困难(我们需要编写大量样板代码)

【问题讨论】:

这是一道题外话推荐题。 【参考方案1】:

Morphia 是必经之路。非常稳定,非常好的 Play 集成,如果您需要更大的扭矩,可以访问所有 Mongo 驱动程序功能。参考解析、实体嵌入按预期工作。您还可以获得生命周期注释,这对于样板持久性代码非常有用。

我个人喜欢 spring-data,因为 hades 项目......你不需要实现 DAO。您只需编写接口,spring 数据会自动提供给您。然而,在我最初的试用中,Spring Data Mongodb 的实现似乎有点问题。如果您有困难的日期并且正在开发高质量的产品,那么选择 Morphia 可能是明智的。

获取更多信息和实现示例:mongodb-java-comparison/

【讨论】:

【参考方案2】:

我一直在使用 Spring-data,我想我觉得它在成熟度方面有所滞后。

它对所有实际目的都有好处,但 mongo 提供的功能在它的全部荣耀中提供,Spring-data 将其映射为驱动程序特别是在聚合时很慢。

就性能而言,Spring-data 并不落后于 imo。

有时我会出现奇怪的行为。 Some 他们的注释在某些地方默默地不起作用,我一生无法弄清楚为什么?

但作为一个整体实现,它非常有用,因为它提供了一个健壮的结构,您的应用程序可以在其上增长。如果您来自 SQL 背景,这也很容易,因为您可以在 jdbcTemplate 和 mongoTemplate 之间进行比较(尽管需要谨慎)

我认真考虑过使用 Morphia,但放弃了这个想法,因为 spring-data 提供了更结构化的方法。看起来在 Morphia 中,我们必须自己实现一些有利有弊的结构,但您通常希望避免这样做。由于存在样板代码的风险,因此新成员的“您的”结构存在学习曲线。

在专业方面,我相信 Morphia 提供了更多的可扩展性,让您享受充分利用 mongo 功能的能力。与 Spring 数据相比,它也是轻量级的。

【讨论】:

***.com/q/66305029/413032 请阅读我的问题,我用 Mongo 基本驱动程序 * / *Spring Data Mongo / Morphia 的经验详细说明了这一点用例。

以上是关于使用spring data mongo 多数据源如何切换 使用注解形式 不影响使用 MongoRepository 接口方案。的主要内容,如果未能解决你的问题,请参考以下文章

将Mongo查询转换为spring Mongooperations

spring-data-mongodb 在一个 Mongo 实例中连接多个数据库

springboot整合mongo多数据源

spring data mongo使用@DBRef,怎么查询指定字段的集合

查询以从 Spring Data mongo 返回单个字段

如何在没有 ObjectId 的情况下将 Mongo 与 Spring Data 一起使用