基于配置的缓存切换方法、电子设备及存储介质技术

技术编号:36956615 阅读:12 留言:0更新日期:2023-03-22 19:16
本发明专利技术实施例公开了一种基于配置的缓存切换方法,适用于spring注解或代码的缓存操作方式,包括:自定义配置文件,所述配置文件中包括缓存定义类型;根据所述配置文件选择目标缓存管理器,从而生成确定缓存切换操作技术组件;将所述缓存操作技术组件自动加载于项目中,或对缓存操作入口进行封装,以使得代码通过所述缓存操作入口调用所述缓存操作技术组件。本发明专利技术实施例提供的基于配置的缓存自由切换方案,针对spring注解的缓存操作方式,降低了使用场景的受限度,也降低了缓存切换的开发成本。针对代码的缓存操作方式,本发明专利技术实施例可满足其缓存切换需求,且可降低缓存切换开发的时间成本。的时间成本。的时间成本。

【技术实现步骤摘要】
基于配置的缓存切换方法、电子设备及存储介质


[0001]本专利技术涉及计算机
,具体涉及一种基于配置的缓存切换方法、电子设备及存储介质。

技术介绍

[0002]项目应用中使用缓存的方式主要有两种:
[0003]第一种:通过spring提供的缓存注解@Cacheable;
[0004]第二种:通过代码直接操作缓存,如操作redis缓存的RedisTemplate。
[0005]但上述两种缓存操作方式存在如下优缺点:
[0006]第一种:使用缓存注解操作缓存,其优点是:使用方便,只需要加在具体的业务方法上即可,同时还可以为不同的业务方法指定不同的缓存。该方法的缺点是:注解是加载于业务方法上的,只能对业务方法的整体结果进行缓存,不能在业务方法内部操作缓存,使用场景受限。且,若项目需要进行缓存技术切换,则先需要更改代码,再按照编译、打包及部署等流程重新发布服务。
[0007]第二种:使用代码操作缓存,其优点是:自由度高,可以在一个业务方法内同时操作不同的缓存,从而满足更多的业务场景。该种方式也是目前使用最多的缓存操作方法。该方法的缺点是:耦合度高,缓存的操作和业务糅杂在一起,而且不同的缓存技术操作API方法也不同,必须对不同的缓存技术进行单独编码。这样项目切换缓存技术的代价更高,需要将所有的代码进行改写,并执行测试、编译、打包及部署等流程后重新发布服务,无法快速地满足需求变更。

技术实现思路

[0008]针对
技术介绍
中所提及的技术缺陷,本专利技术实施例的目的在于提供一种基于配置的缓存切换方法、电子设备及存储介质。
[0009]为实现上述目的,第一方面,本专利技术实施例提供了一种基于配置的缓存切换方法,适用于spring注解的缓存操作方式。该方法包括:
[0010]自定义配置文件,所述配置文件中包括缓存定义类型;
[0011]根据所述配置文件选择目标缓存管理器,从而确定缓存操作技术组件;
[0012]将所述缓存操作技术组件自动加载于项目中。
[0013]作为本申请的一种具体实现方式,所述目标缓存管理器包括redis缓存管理器和内存缓存管理器,根据所述配置文件选择目标缓存管理器,具体包括:
[0014]继承AbstractCacheManager类,并重写AbstractCacheManager类中的getCache方法;
[0015]根据所述配置文件及重写的getCache方法选择目标缓存管理器。
[0016]可选地,作为本申请的另一种具体实现方式,所述目标缓存管理器包括DB缓存管理器,根据所述配置文件选择目标缓存管理器,具体包括:
[0017]继承AbstractCacheManager类,并重写AbstractCacheManager类中的getCache方法;
[0018]定义数据库的缓存实现类;
[0019]根据所述配置文件、重写的getCache方法及缓存实现类选择目标缓存管理器。
[0020]进一步地,作为本申请的一种具体实现方式,将所述缓存操作技术组件自动加载于项目中,具体包括:
[0021]定义自动配置类,并将其配置到spring.factories文件中;
[0022]借助spring的自动注册机制自动地将所述缓存操作组件加载于项目中。
[0023]第二方面,本专利技术实施例还提供了一种电子设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如上述第一方面所述的方法步骤。
[0024]第三方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现如上述第一方面所述的方法步骤。
[0025]第四方面,本专利技术实施例提供了另一种基于配置的缓存切换方法,其适用于代码的缓存操作方式。该方法包括:
[0026]自定义配置文件,所述配置文件中包括缓存定义类型;
[0027]根据所述配置文件选择目标缓存管理器,从而生成缓存操作技术组件;
[0028]对缓存操作入口进行封装,以使得代码通过所述缓存操作入口调用所述缓存操作技术组件。
[0029]作为本申请的一种具体实现方式,对缓存操作入口进行封装,具体包括:
[0030]对缓存操作类进行统一封装,提供统一的缓存操作入口。
[0031]第五方面,本专利技术实施例还提供了另一种电子设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如上述第四方面所述的方法步骤。
[0032]本专利技术实施例提供的基于配置的缓存自由切换方案,针对spring注解的缓存操作方式,降低了使用场景的受限度,也降低了缓存切换的开发成本。针对代码的缓存操作方式,本专利技术实施例可满足其缓存切换需求,且可降低缓存切换开发的时间成本。
附图说明
[0033]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
[0034]图1是本专利技术第一实施例提供的基于配置的缓存切换方法的流程图;
[0035]图2是本专利技术第二实施例提供的基于配置的缓存切换方法的流程图;
[0036]图3是本专利技术实施例提供的电子设备的一种结构图。
具体实施方式
[0037]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0038]应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0039]本专利技术的专利技术构思是:基于spring的缓存机制提供一种缓存切换方案。由于spring提供有一套顶层缓存接口,因此只需实现其顶层操作即可将本实施例中的缓存切换方案嵌入到spring缓存机制中。这样一来,既可使用原有的spring缓存支持技术,又可以使用自定义的缓存,例如DB缓存。原有缓存和自定义缓存之间,只需改变配置参数的值便可实现切换。
[0040]其中,原有的spring缓存支持技术为:通过指定@Cacheable注解的cacheNames、cacheManager参数就可以“灵活”的使用不同的缓存策略。
[0041]本实施例的缓存切换方案的基本流程是:先自定义cache本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于配置的缓存切换方法,其特征在于,该方法适用于spring注解的缓存操作方式,包括:自定义配置文件,所述配置文件中包括缓存定义类型;根据所述配置文件选择目标缓存管理器,从而确定缓存操作技术组件;将所述缓存操作技术组件自动加载于项目中。2.如权利要求1所述的缓存切换方法,其特征在于,所述目标缓存管理器包括但不限于redis缓存管理器和内存缓存管理器,根据所述配置文件选择目标缓存管理器,具体包括:继承AbstractCacheManager类,并重写AbstractCacheManager类中的getCache方法;根据所述配置文件及重写的getCache方法选择目标缓存管理器。3.如权利要求1所述的缓存切换方法,其特征在于,所述目标缓存管理器包括DB缓存管理器,根据所述配置文件选择目标缓存管理器,具体包括:继承AbstractCacheManager类,并重写AbstractCacheManager类中的getCache方法;定义数据库的缓存实现类;根据所述配置文件、重写的getCache方法及缓存实现类选择目标缓存管理器。4.如权利要求1

3任一项所述的缓存切换方法,其特征在于,将所述缓存操作技术组件自动加载于项目中,具体包括:定义自动配置类,并将其配置到spring.factories文件中;借助spring的自动注册机制自动地将所述缓存操作技术组件加载于项目中。5.一种电子设备,其特征在于,所述电子设备包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互...

【专利技术属性】
技术研发人员:李铭成黎建程祝国
申请(专利权)人:银雁科技服务集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1