栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

带有项目/实体集合的Spring Cache

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

带有项目/实体集合的Spring Cache

实际上,即使使用Spring的Caching Abstraction,也有可能,但不是现成的(OOTB)。本质上,你必须自定义Spring的缓存基础结构(下面进一步解释)

通过默认情况下,Spring的缓存架构采用全

@Cacheable
方法参数的参数作为缓存的“钥匙”,作为解释在这里。当然,你也可以自定义使用一个关键分辨率规划环境地政司表达或用自定义
KeyGenerator
实现,如解释在这里。

尽管如此,这并不会将参数参数的集合或数组以及

@Cacheable
方法的返回值分解为单独的缓存项(即,基于数组/集合或Map的键/值对)。

为此,你需要一个Spring的 自定义实现

CacheManager
(取决于你的缓存策略/提供者)和Cache接口。

注意:具有讽刺意味的是,这将是我第三次回答几乎相同的问题,第一次在这里,然后在这里,现在在这里,:-)。无论如何…

我已经对此示例进行了更新/整理(有点)。

请注意,我的例子扩展和定制的ConcurrentMapCacheManager所提供的Spring框架本身。

从理论上说,你可以扩展/自定义任何CacheManager的实现,像Redis的公司在springRedis的数据,这里(源),或枢纽的GemFire的 CacheManager在spring数据的GemFire,这里(源)。的开源版本匹的GemFire是阿帕奇的Geode,其具有相应的弹簧数据的Geode项目,(来源的CacheManager在spring数据的Geode,这基本上等同于SD的GemFire)。当然,你可以将此技术应用于其他缓存提供程序… Hazelcast,Ehcache等。

但是,工作的真正实质是由Spring的Cache接口的自定义实现(或更具体地说,是基类)处理的 。

无论如何,希望从我的示例中,你将能够弄清楚在应用程序中需要做什么才能满足应用程序的缓存要求。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393919.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号