gpt4 book ai didi

spring - Spring Data 的目的及其抽象级别是什么?

转载 作者:行者123 更新时间:2023-12-02 03:18:45 26 4
gpt4 key购买 nike

在尝试理解“Spring Data”的用途时,我看到了这篇文章,并尝试了一些有关 Gemfire/Redis 存储库及其相应 Spring-Data 组件的示例。有人可以帮我解决以下问题吗?

场景:当 GemFire 是我的数据存储时,我必须使用 GemFireTemplate 上的方法创建、获取和删除来执行 CRUD 操作。当 Redis 是我的数据存储时,我必须在 RedisTemplate 上使用方法 .opsForHash().put 、 .opsForHash().get 和 .opsForHash().delete 来执行相同的 CRUD 操作。

问题:

Isn't Spring-Data supposed to provide a level of abstraction to the underlying data store ? If i am expected to know the respective CRUD methods and have different APIs based on the underlying data store, what kind of abstraction does Spring-Data components bring in ? Can't I directly use a Jedis or Java client for Gemfire to perform these datatstore specific CRUD operations ?

This link似乎解释了这一点,但是,看起来我需要一些帮助来理解它。

没有适用于所有持久性存储的通用 API。差异太根本了。但 Spring Data 项目确实提供了一个通用的编程模型来访问您的数据

最佳答案

感谢您的提问,Master Slave 已经很好地指出了 Spring Data 的好处提供的内容多种多样,但有时商店模块之间支持的功能存在功能差异。那些是部分原因是特定底层数据存储的不同特征和功能以及重点和时间限制。

Redis 和 Gemfire 在某种程度上是类似的存储技术,通过提供像存储和访问模型这样的键值对。然而,Gemfire 提供了比 Redis 更丰富的查询功能。这就是原因之一Spring Data Gemfire 已经有一个 Repository abstraction很长一段时间了。

另一方面,Redis 是一个不同的故事 - 正如 Master Slave 已经提到的,您可以轻松构建自己的定制 Redis 存储库 - 这就是什么很多人都这样做 - 但通常与 Redis 的交互对于用例来说是非常独特的,所以我们没有看到如此多的功能重叠激发了通用实现的功能,而不仅仅是“保存”和“加载”。

我们有一个ticket用于向 Spring Data Redis 添加存储库抽象,但我们还没有时间这样做。

关于spring - Spring Data 的目的及其抽象级别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28962948/

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