CN106933644A - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN106933644A CN106933644A CN201511032531.XA CN201511032531A CN106933644A CN 106933644 A CN106933644 A CN 106933644A CN 201511032531 A CN201511032531 A CN 201511032531A CN 106933644 A CN106933644 A CN 106933644A
- Authority
- CN
- China
- Prior art keywords
- result
- target service
- service logic
- target
- program code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/441—Register allocation; Assignment of physical memory space to logical memory space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请公开了一种数据处理方法和装置。该方法包括:获取目标业务数据;调用目标业务逻辑对应的程序代码,其中,目标业务逻辑用于处理目标业务数据;执行目标业务逻辑对应的程序代码对目标业务数据进行处理,得到处理结果;检测程序代码中是否标记有预设注解,其中,预设注解用于表示目标业务逻辑为待缓存的业务逻辑;在检测到程序代码中标记有预设注解的情况下,缓存处理结果至目标存储器中。本申请解决了由于现有技术中无法缓存业务逻辑的处理结果的技术问题。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种数据处理方法和装置。
背景技术
现有技术中,可以通过Playframework框架在MVC模型中标注缓存注解,例如,标注缓存注解@Cache,但是该注解仅能标注在控制器(Controller)层,用于缓存数据。然而,发明人发现,对于模型(Modle)层方法级别的注解配置是不支持的。由于在模型(Modle)层不支持注解配置实现数据缓存,因此,当需要对模型(Modle)层的数据进行缓存时,通过现有的缓存方法增加了业务人员的工作量。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据处理方法和装置,以至少解决由于现有技术中无法缓存业务逻辑的处理结果的技术问题。
根据本申请实施例的一个方面,提供了一种数据处理方法,包括:获取目标业务数据;调用目标业务逻辑对应的程序代码,其中,所述目标业务逻辑用于处理所述目标业务数据;执行所述目标业务逻辑对应的程序代码对所述目标业务数据进行处理,得到处理结果;检测所述程序代码中是否标记有预设注解,其中,所述预设注解用于表示所述目标业务逻辑为待缓存的业务逻辑;在检测到所述程序代码中标记有所述预设注解的情况下,缓存所述处理结果至目标存储器中。
进一步地,在检测到所述程序代码中标记有所述预设注解的情况下,缓存所述处理结果至目标存储器中包括:在检测到所述程序代码中标记有所述预设注解的情况下,调用所述目标业务逻辑的代理对象,其中,所述代理对象为预先设置的用于控制所述目标业务逻辑进行缓存的对象;通过所述代理对象缓存所述目标业务逻辑的处理结果至所述目标存储器中。
进一步地,通过所述代理对象缓存所述目标业务逻辑的处理结果至所述目标存储器中包括:获取所述程序代码中所标记的所述预设注解的索引键值;通过所述索引键值在预设处理结果中查找所述目标业务逻辑的处理结果,其中,所述预设处理结果为已缓存在所述目标存储器中的目标业务逻辑的处理结果;在所述索引键值未查找到所述目标业务逻辑的处理结果的情况下,缓存所述目标业务逻辑的处理结果至所述目标存储器中。
进一步地,在所述索引键值查找到所述处理结果的情况下,所述方法还包括:获取所述目标业务逻辑的处理结果的数据类型;从所述目标存储器中调用所述目标业务逻辑的处理结果,其中,所述目标业务逻辑的处理结果以字符串形式存储于所述目标存储器中;将调用到的字符串形式的所述目标业务逻辑的处理结果转化为所述数据类型的目标结果,并返回所述目标结果。
进一步地,所述方法还包括:在存储所述目标业务逻辑的处理结果至所述目标存储器之后经过预设时间,清除所述目标业务逻辑的处理结果,其中,所述预设时间为预先设置于所述预设注解中用于控制所述目标业务逻辑的处理结果在所述目标存储器中存储的时间。
根据本申请实施例的另一方面,还提供了一种数据处理装置,包括:第一获取单元,用于获取目标业务数据;第一调用单元,用于调用目标业务逻辑对应的程序代码,其中,所述目标业务逻辑用于处理所述目标业务数据;执行单元,用于执行所述目标业务逻辑对应的程序代码对所述目标业务数据进行处理,得到处理结果;检测单元,用于检测所述程序代码中是否标记有预设注解,其中,所述预设注解用于表示所述目标业务逻辑为待缓存的业务逻辑;缓存单元,用于在检测到所述程序代码中标记有所述预设注解的情况下,缓存所述处理结果至目标存储器中。
进一步地,所述缓存单元包括:调用模块,用于在检测到所述程序代码中标记有所述预设注解的情况下,调用所述目标业务逻辑的代理对象,其中,所述代理对象为预先设置的用于控制所述目标业务逻辑进行缓存的对象;缓存模块,用于通过所述代理对象缓存所述目标业务逻辑的处理结果至所述目标存储器中。
进一步地,所述缓存模块包括:获取子模块,用于获取所述程序代码中所标记的所述预设注解的索引键值;查找子模块,用于通过所述索引键值在预设处理结果中查找所述目标业务逻辑的处理结果,其中,所述预设处理结果为已缓存在所述目标存储器中的目标业务逻辑的处理结果;缓存子模块,用于在所述索引键值未查找到所述目标业务逻辑的处理结果的情况下,缓存所述目标业务逻辑的处理结果至所述目标存储器中。
进一步地,所述装置还包括:第二获取单元,用于在所述索引键值查找到所述处理结果的情况下,获取所述目标业务逻辑的处理结果的数据类型;第二调用单元,用于从所述目标存储器中调用所述目标业务逻辑的处理结果,其中,所述目标业务逻辑的处理结果以字符串形式存储于所述目标存储器中;转化单元,用于将调用到的字符串形式的所述目标业务逻辑的处理结果转化为所述数据类型的目标结果,并返回所述目标结果。
进一步地,所述装置还包括:清除单元,用于在存储所述目标业务逻辑的处理结果至所述目标存储器之后经过预设时间,清除所述目标业务逻辑的处理结果,其中,所述预设时间为预先设置于所述预设注解中用于控制所述目标业务逻辑的处理结果在所述目标存储器中存储的时间。
在本申请实施例中,采用获取目标业务数据;调用目标业务逻辑对应的程序代码,其中,所述目标业务逻辑用于处理所述目标业务数据;执行所述目标业务逻辑对应的程序代码对所述目标业务数据进行处理,得到处理结果;检测所述程序代码中是否标记有预设注解,其中,所述预设注解用于表示所述目标业务逻辑为待缓存的业务逻辑;在检测到所述程序代码中标记有所述预设注解的情况下,缓存所述处理结果至目标存储器中的方式,通过调用到的目标业务逻辑的程序代码对目标业务数据进行处理,得到处理结果;然后,检测该程序代码中是否标记用于表示缓存该目标业务逻辑的预设注解,如果检测到该预设注解的情况下,将目标业务逻辑的处理结果缓存至目标存储器中,相对于现有技术中不能通过标记注解的方式来实现业务逻辑的处理结果的缓存,达到了通过标记预设注解实现自动对目标业务逻辑的处理结果自动实现缓存的目的,从而实现了自动缓目标业务逻辑的处理结果的技术效果,进而解决了由于现有技术中无法缓存业务逻辑的处理结果的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种数据处理方法的流程图;以及
图2是根据本申请实施例的一种数据处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请涉及的一些术语和概念进行说明:
类:是面向对象的程序开发语言中一种复杂的数据类型,是将不同类型的数据和与这些数据相关的操作封装在一起的集合体,其中,类是对象的抽象,而对象是类的具体实例。
Playframework框架:是一个全栈(full-stack)的Java Web应用框架,包括一个简单的无状态MVC模型。
MVC模型:为一种软件设计典范,为一种业务逻辑、数据、界面显示分离的组织代码,包括模型(Model)、视图(View)、控制器(Controller)。
Javassit:是一个开源的分析、编辑和创建Java字节码的类库,可以给指定的类进行字节码增强,其优点是简单、快速。直接使用java编码的形式,而不需要了解虚拟机指令,就能动态改变类的结构,或者动态生成类。
缓存:一种将数据存在计算机内存中的方式。
根据本申请实施例,提供了一种数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种数据处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取目标业务数据。
具体地,目标业务数据可以为待处理的数据,例如,用户A的姓名,以及用户A对应的年龄,性别等数据信息。
步骤S104,调用目标业务逻辑对应的程序代码,其中,目标业务逻辑用于处理目标业务数据。
在本申请实施例中,目标业务逻辑用于按照一定的规则处理目标业务数据,也可以理解为,每个目标业务逻辑都对应一组程序代码,该程序代码用于实现该目标业务逻辑,其中,目标业务逻辑可以为多个,还可以为一个。例如,在多个用户中选取年龄大于25的用户,并返回用户的名字,即为一个目标业务逻辑,且该目标业务逻辑对应一组程序代码,该程序代码用于完成在目标业务数据中选取年龄大于25岁的用户,并返回用户的姓名。
需要说明的是,类是将不同类型的业务数据和与这些业务数据相关的业务逻辑封装在一起的集合体,其中,类是对象的抽象,而对象是类的具体实例,在本申请提供的数据处理方法中,每个目标业务逻辑均可以理解为类中的一个对象。
步骤S106,执行目标业务逻辑对应的程序代码对目标业务数据进行处理,得到处理结果。
在程序执行的过程中,会执行每个目标业务逻辑对应的程序代码,执行每组代码之后,均会得到一个结果,该结果即为目标业务逻辑的处理结果。
步骤S108,检测程序代码中是否标记有预设注解,其中,预设注解用于表示目标业务逻辑为待缓存的业务逻辑。
具体地,业务人员可以预先在需要缓存功能的目标业务逻辑对应的程序代码中标记预设注解,该预设注解可以表示为@PlayCacheAble,其中,该预设注解表示将目标业务逻辑的处理结果进行缓存。
步骤S110,在检测到程序代码中标记有预设注解的情况下,缓存处理结果至目标存储器中。
当程序在执行的过程中,若检测到该程序代码中标记有预设注解@PlayCacheAble,则确定需要将该目标业务逻辑的处理结果进行缓存。
在本申请实施例中,通过调用到的目标业务逻辑的程序代码对目标业务数据进行处理,得到处理结果;然后,检测该程序代码中是否标记用于表示缓存该目标业务逻辑的预设注解,如果检测到该预设注解的情况下,将目标业务逻辑的处理结果缓存至目标存储器中,相对于现有技术中不能通过标记注解的方式来实现业务逻辑的处理结果的缓存,达到了通过标记预设注解实现自动对目标业务逻辑的处理结果自动实现缓存的目的,从而实现了自动缓目标业务逻辑的处理结果的技术效果,进而解决了由于现有技术中无法缓存业务逻辑的处理结果的技术问题。
可选地,在检测到程序代码中标记有预设注解的情况下,缓存处理结果至目标存储器中包括如下步骤:
步骤S1101,在检测到程序代码中标记有预设注解的情况下,调用目标业务逻辑的代理对象,其中,代理对象为预先设置的用于控制目标业务逻辑进行缓存的对象。
步骤S1103,通过代理对象缓存目标业务逻辑的处理结果至目标存储器中。
具体地,在执行目标业务逻辑的程序代码的过程中,若检测到该程序代码中携带有该预设注解@PlayCacheAble,则调用预设已设置的代理对象,并通过该代理对象将目标业务逻辑的处理结果存储至目标存储器中(例如,计算机的内存)。
例如,任意一个目标业务逻辑为:在多个用户中选取年龄大于25的用户,并返回用户的名字,且该目标业务逻辑对应的程序代码中已标记预设注解@PlayCacheAble。相应地,在执行该程序代码之后,将该程序代码的处理结果存储至目标存储器中。假设,年龄大于25岁的用户有“张三”和“李四”,则将“张三”和“李四”按照一定的格式存储在计算机的内存中。需要说明的是,在计算机的内存中,“张三”和“李四”可以按照字符串或者二进制代码的形式存储。
需要说明的是,代理对象为预先设置的,用于控制目标业务逻辑的处理结果进行缓存的对象。该代理对象的设置方法可以有很多种,在本申请实施例中,可以编写一个工厂类CacheFactory,该工厂类的功能是根据已标记预设注解@PlayCacheAble的程序代码的相关信息来创建代理对象,其中,可以通过javassit中的代理工厂(ProxyFactory)以动态字节码的方式生成。该代理对象除继承了目标业务逻辑的全部功能之外,还具有将该目标业务逻辑的处理结果进行缓存的功能。
可选地,通过代理对象缓存目标业务逻辑的处理结果至目标存储器中包括如下步骤:
步骤S1,获取程序代码中所标记的预设注解的索引键值。
步骤S3,通过索引键值在预设处理结果中查找目标业务逻辑的处理结果,其中,预设处理结果为已缓存在目标存储器中的目标业务逻辑的处理结果。
步骤S5,在索引键值未查找到目标业务逻辑的处理结果的情况下,缓存目标业务逻辑的处理结果至目标存储器中。
需要说明的是,在本申请实施例中,预设注解@PlayCacheAble中包括索引键值key,该索引键值key的功能是在目标存储器中已缓存的预设处理结果中查找该目标业务逻辑的处理结果。其中,由于目标业务键值的处理结果可能预先已存储于目标存储器中,因此,需通过索引键值在目标存储器中查找目标业务键值的处理结果是否已缓存。
如果索引键值的返回值为空,则说明在目标存储器中未查找到该处理结果,则此时将目标业务键值的处理结果以字符串的形式或者以二进制的形式存储于目标存储器中。
例如,任意一个目标业务逻辑为:在多个用户中选取年龄大于25的用户,并返回用户的名字,并且在该目标业务逻辑对应的程序代码中已标记该预设注解@PlayCacheAble,此时,将年龄大于25岁的用户的姓名(例如,“张三”和“李四”)存储在目标存储器中。在存储之前,通过key值在预设处理结果查找是否已存储该处理结果(例如,“张三”和“李四”的相关信息),如果未查找到“张三”和“李四”的相关信息时,则将“张三”和“李四”以字符串或者二进制的形式存储于目标存储器中。
可选地,在索引键值查找到处理结果的情况下,该数据处理方法还包括如下步骤:
步骤S7,获取目标业务逻辑的处理结果的数据类型。
步骤S9,从目标存储器中调用目标业务逻辑的处理结果,其中,目标业务逻辑的处理结果以字符串形式存储于目标存储器中。
步骤S11,将调用到的字符串形式的目标业务逻辑的处理结果转化为数据类型的目标结果,并返回目标结果。
具体地,如果通过索引键值(key值)在目标存储器中已存储的预设处理结果中查找到该目标业务逻辑的处理结果,则需从目标存储器中将该处理结果调用出来,并将该处理结果的类型转化为数据类型(returnType类型),得到目标结果,并将该目标结果返回给编程人员。
需要说明的是,在目标存储器中预先缓存的预设处理结果是以字符串的形式(或者二进制)的形式存储的,而返回给编程人员结果需为对象(objection)形式的结果,因此,需要将在目标存储器中调用的处理结果的类型转化为数据类型。例如,任意处理结果:“张三”和“李四”是以字符串或者二进制的形式存储于目标存储器中,则需将该字符串或者二进制形式的处理结果转化为对象形式的目标结果,例如:张三、李四。
在本申请实施例中,通过代理对象将携带预设注解的目标业务逻辑的处理结果进行缓存的过程中需要两个辅助类,即:方法过滤器和方法处理器。
方法过滤器的功能是根据指定类的属性信息获取该指定类中标携带有预设注解@PlayCacheAble的对象。还可以理解为,在程序执行的过程中,通过该方法过滤器检测目标业务逻辑的程序代码中是否标记有预设注解。
方法处理器的功能是处理上面方法过滤器中过滤得到的方法(例如,方法methodA)。还可以理解为,方法处理器对携带有预设注解的目标业务逻辑执行上述步骤S1至步骤S11的处理过程。
可选地,数据处理方法还包括如下步骤:在存储目标业务逻辑的处理结果至目标存储器之后经过预设时间,清除目标业务逻辑的处理结果,其中,预设时间为预先设置于预设注解中用于控制目标业务逻辑的处理结果在目标存储器中存储的时间。
具体地,在预设注解@PlayCacheAble中还包括预设时间(duration),该预设时间又可以称为失效时间,即目标业务逻辑的处理结果在目标存储器中存储的时间。
在存储目标业务逻辑的处理结果至目标存储器的时刻,读取该预设注解@PlayCacheAble中的预设时间(duration),并开始计时,经过预设时间之后,将该处理结果清除,释放内存空间,防止出现数据过大而导致的计算机运行缓慢等问题。
本申请实施例还提供了一种数据处理装置,该装置可以用于执行本申请实施例的数据处理方法。
图2是根据本申请实施例的一种数据处理装置的示意图,如图2所示,该装置包括第一获取单元10、第一调用单元20、执行单元30、检测单元40和缓存单元50,其中:
第一获取单元10,用于获取目标业务数据。
具体地,目标业务数据可以为待处理的数据,例如,用户A的姓名,以及用户A对应的年龄,性别等数据信息。
第一调用单元20,用于调用目标业务逻辑对应的程序代码,其中,目标业务逻辑用于处理目标业务数据。
在本申请实施例中,目标业务逻辑用于按照一定的规则处理该目标业务数据,也可以理解为,每个目标业务逻辑都对应一组程序代码,该程序代码用于实现该目标业务逻辑,其中,目标业务逻辑可以为多个,还可以为一个。例如,在多个用户中选取年龄大于25的用户,并返回用户的名字,即为一个目标业务逻辑,且该目标业务逻辑对应一组程序代码,来完成在目标业务数据中选取年龄大于25岁的用户,并返回用户的姓名。
需要说明的是,类是将不同类型的业务数据和与这些业务数据相关的业务逻辑封装在一起的集合体,其中,类是对象的抽象,而对象是类的具体实例,在本申请提供的数据处理方法中,每个目标业务逻辑均可以理解为类中的一个对象。
执行单元30,用于执行目标业务逻辑对应的程序代码对目标业务数据进行处理,得到处理结果。
在程序执行的过程中,会执行每个目标业务逻辑对应的程序代码,执行每组代码之后,均会得到一个结果,该结果即为目标业务逻辑的处理结果。
检测单元40,用于检测程序代码中是否标记有预设注解,其中,预设注解用于表示目标业务逻辑为待缓存的业务逻辑。
具体地,业务人员可以预先在需要缓存功能的目标业务逻辑对应的程序代码中标记预设注解,该预设注解可以表示为@PlayCacheAble,其中,该预设注解表示将目标业务逻辑的处理结果进行缓存。
缓存单元50,用于在检测到程序代码中标记有预设注解的情况下,缓存处理结果至目标存储器中。
当程序在执行的过程中,若检测到该程序代码中标记有预设注解@PlayCacheAble,则确定需要将该目标业务逻辑的处理结果进行缓存。
在本申请实施例中,通过调用到的目标业务逻辑的程序代码对目标业务数据进行处理,得到处理结果;然后,检测该程序代码中是否标记用于表示缓存该目标业务逻辑的预设注解,如果检测到该预设注解的情况下,将目标业务逻辑的处理结果缓存至目标存储器中,相对于现有技术中不能通过标记注解的方式来实现业务逻辑的处理结果的缓存,达到了通过标记预设注解实现自动对目标业务逻辑的处理结果自动实现缓存的目的,从而实现了自动缓目标业务逻辑的处理结果的技术效果,进而解决了由于现有技术中无法缓存业务逻辑的处理结果的技术问题。
可选地,缓存单元包括:调用模块,用于在检测到程序代码中标记有预设注解的情况下,调用目标业务逻辑的代理对象,其中,代理对象为预先设置的用于控制目标业务逻辑进行缓存的对象;缓存模块,用于通过代理对象缓存目标业务逻辑的处理结果至目标存储器中。
具体地,在执行目标业务逻辑的程序代码的过程中,若检测到该程序代码中携带有该预设注解@PlayCacheAble,则通过调用模块调用预设已设置的代理对象,并通过缓存模块将目标业务逻辑的处理结果存储至目标存储器中(例如,计算机的内存)。
需要说明的是,代理对象为预先设置的,用于控制目标业务逻辑的处理结果进行缓存的对象。该代理对象的设置方法可以有很多种,在本申请实施例中,可以编写一个工厂类CacheFactory,该工厂类的功能是根据已标记预设注解@PlayCacheAble的程序代码的相关信息来创建代理对象,其中,可以通过javassit中的代理工厂(ProxyFactory)以动态字节码的方式生成。该代理对象除继承了目标业务逻辑的全部功能之外,还具有将该目标业务逻辑的处理结果进行缓存的功能。
可选地,缓存模块包括:获取子模块,用于获取程序代码中所标记的预设注解的索引键值;查找子模块,用于通过索引键值在预设处理结果中查找目标业务逻辑的处理结果,其中,预设处理结果为已缓存在目标存储器中的目标业务逻辑的处理结果;缓存子模块,用于在索引键值未查找到目标业务逻辑的处理结果的情况下,缓存目标业务逻辑的处理结果至目标存储器中。
需要说明的是,在本申请实施例中,预设注解@PlayCacheAble中包括索引键值key,该索引键值key的功能是在目标存储器中已缓存的预设处理结果中查找该目标业务逻辑的处理结果。其中,由于目标业务键值的处理结果可能预先已存储于目标存储器中,因此,通过调用获取子模块获取该索引键值,并调用查找子模块通过该索引键值在目标存储器中查找目标业务键值的处理结果是否已缓存。
如果索引键值的返回值为空,则说明在目标存储器中未查找到该处理结果,则此时调用缓存子模块将目标业务键值的处理结果以字符串的形式或者以二进制的形式存储于目标存储器中。
可选地,装置还包括:第二获取单元,用于在索引键值查找到处理结果的情况下,获取目标业务逻辑的处理结果的数据类型;第二调用单元,用于从目标存储器中调用目标业务逻辑的处理结果,其中,目标业务逻辑的处理结果以字符串形式存储于目标存储器中;转化单元,用于将调用到的字符串形式的目标业务逻辑的处理结果转化为数据类型的目标结果,并返回目标结果。
具体地,如果通过索引键值(key值)在目标存储器中已存储的预设处理结果中查找到该目标业务逻辑的处理结果,则通过第二调用单元在从目标存储器中将该处理结果调用该处理结果,并通过转化单元将该处理结果的类型转化为第二获取单元获取到的数据类型(returnType类型),得到目标结果,并将该目标结果返回给编程人员。
需要说明的是,在目标存储器中预先缓存的预设处理结果是以字符串的形式(或者二进制)的形式存储的,而返回给编程人员结果需为对象(objection)形式的结果,因此,需要将在目标存储器中调用的处理结果的类型转化为数据类型。例如,任意处理结果:“张三”和“李四”是以字符串或者二进制的形式存储于目标存储器中,则需将该字符串或者二进制形式的处理结果转化为对象形式的目标结果,例如:张三、李四。
可选地,数据处理装置还包括:清除单元,用于在存储目标业务逻辑的处理结果至目标存储器之后经过预设时间,清除目标业务逻辑的处理结果,其中,预设时间为预先设置于预设注解中用于控制目标业务逻辑的处理结果在目标存储器中存储的时间。
具体地,在预设注解@PlayCacheAble中还包括预设时间(duration),该预设时间又可以称为失效时间,即目标业务逻辑的处理结果在目标存储器中存储的时间。
在存储目标业务逻辑的处理结果至目标存储器的时刻,读取该预设注解@PlayCacheAble中的预设时间(duration),并开始计时,经过预设时间之后,通过调用清除模块将该处理结果清除,释放内存空间,防止出现数据过大而导致的计算机运行缓慢等问题。
所述数据处理装置包括处理器和存储器,上述第一获取单元、第一调用单元、执行单元、检测单元和缓存单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数通过标记预设注解实现自动对目标业务逻辑的处理结果自动实现缓存,解决了由于现有技术中无法缓存业务逻辑的处理结果的技术问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取目标业务数据;调用目标业务逻辑对应的程序代码,其中,所述目标业务逻辑用于处理所述目标业务数据;执行所述目标业务逻辑对应的程序代码对所述目标业务数据进行处理,得到处理结果;检测所述程序代码中是否标记有预设注解,其中,所述预设注解用于表示所述目标业务逻辑为待缓存的业务逻辑;在检测到所述程序代码中标记有所述预设注解的情况下,缓存所述处理结果至目标存储器中。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取目标业务数据;
调用目标业务逻辑对应的程序代码,其中,所述目标业务逻辑用于处理所述目标业务数据;
执行所述目标业务逻辑对应的程序代码对所述目标业务数据进行处理,得到处理结果;
检测所述程序代码中是否标记有预设注解,其中,所述预设注解用于表示所述目标业务逻辑为待缓存的业务逻辑;
在检测到所述程序代码中标记有所述预设注解的情况下,缓存所述处理结果至目标存储器中。
2.根据权利要求1所述的方法,其特征在于,在检测到所述程序代码中标记有所述预设注解的情况下,缓存所述处理结果至目标存储器中包括:
在检测到所述程序代码中标记有所述预设注解的情况下,调用所述目标业务逻辑的代理对象,其中,所述代理对象为预先设置的用于控制所述目标业务逻辑进行缓存的对象;
通过所述代理对象缓存所述目标业务逻辑的处理结果至所述目标存储器中。
3.根据权利要求2所述的方法,其特征在于,通过所述代理对象缓存所述目标业务逻辑的处理结果至所述目标存储器中包括:
获取所述程序代码中所标记的所述预设注解的索引键值;
通过所述索引键值在预设处理结果中查找所述目标业务逻辑的处理结果,其中,所述预设处理结果为已缓存在所述目标存储器中的目标业务逻辑的处理结果;
在所述索引键值未查找到所述目标业务逻辑的处理结果的情况下,缓存所述目标业务逻辑的处理结果至所述目标存储器中。
4.根据权利要求3所述的方法,其特征在于,在所述索引键值查找到所述处理结果的情况下,所述方法还包括:
获取所述目标业务逻辑的处理结果的数据类型;
从所述目标存储器中调用所述目标业务逻辑的处理结果,其中,所述目标业务逻辑的处理结果以字符串形式存储于所述目标存储器中;
将调用到的字符串形式的所述目标业务逻辑的处理结果转化为所述数据类型的目标结果,并返回所述目标结果。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
在存储所述目标业务逻辑的处理结果至所述目标存储器之后经过预设时间,清除所述目标业务逻辑的处理结果,其中,所述预设时间为预先设置于所述预设注解中用于控制所述目标业务逻辑的处理结果在所述目标存储器中存储的时间。
6.一种数据处理装置,其特征在于,包括:
第一获取单元,用于获取目标业务数据;
第一调用单元,用于调用目标业务逻辑对应的程序代码,其中,所述目标业务逻辑用于处理所述目标业务数据;
执行单元,用于执行所述目标业务逻辑对应的程序代码对所述目标业务数据进行处理,得到处理结果;
检测单元,用于检测所述程序代码中是否标记有预设注解,其中,所述预设注解用于表示所述目标业务逻辑为待缓存的业务逻辑;
缓存单元,用于在检测到所述程序代码中标记有所述预设注解的情况下,缓存所述处理结果至目标存储器中。
7.根据权利要求6所述的装置,其特征在于,所述缓存单元包括:
调用模块,用于在检测到所述程序代码中标记有所述预设注解的情况下,调用所述目标业务逻辑的代理对象,其中,所述代理对象为预先设置的用于控制所述目标业务逻辑进行缓存的对象;
缓存模块,用于通过所述代理对象缓存所述目标业务逻辑的处理结果至所述目标存储器中。
8.根据权利要求7所述的装置,其特征在于,所述缓存模块包括:
获取子模块,用于获取所述程序代码中所标记的所述预设注解的索引键值;
查找子模块,用于通过所述索引键值在预设处理结果中查找所述目标业务逻辑的处理结果,其中,所述预设处理结果为已缓存在所述目标存储器中的目标业务逻辑的处理结果;
缓存子模块,用于在所述索引键值未查找到所述目标业务逻辑的处理结果的情况下,缓存所述目标业务逻辑的处理结果至所述目标存储器中。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于在所述索引键值查找到所述处理结果的情况下,获取所述目标业务逻辑的处理结果的数据类型;
第二调用单元,用于从所述目标存储器中调用所述目标业务逻辑的处理结果,其中,所述目标业务逻辑的处理结果以字符串形式存储于所述目标存储器中;
转化单元,用于将调用到的字符串形式的所述目标业务逻辑的处理结果转化为所述数据类型的目标结果,并返回所述目标结果。
10.根据权利要求6至9中任一项所述的装置,其特征在于,所述装置还包括:
清除单元,用于在存储所述目标业务逻辑的处理结果至所述目标存储器之后经过预设时间,清除所述目标业务逻辑的处理结果,其中,所述预设时间为预先设置于所述预设注解中用于控制所述目标业务逻辑的处理结果在所述目标存储器中存储的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032531.XA CN106933644A (zh) | 2015-12-31 | 2015-12-31 | 数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032531.XA CN106933644A (zh) | 2015-12-31 | 2015-12-31 | 数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106933644A true CN106933644A (zh) | 2017-07-07 |
Family
ID=59444181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511032531.XA Pending CN106933644A (zh) | 2015-12-31 | 2015-12-31 | 数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933644A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933585A (zh) * | 2019-02-22 | 2019-06-25 | 京东数字科技控股有限公司 | 数据查询方法和数据查询系统 |
CN110045952A (zh) * | 2019-04-19 | 2019-07-23 | 京东数字科技控股有限公司 | 代码调用方法与装置 |
CN110968750A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种数据存储方法和系统 |
CN111767310A (zh) * | 2019-08-19 | 2020-10-13 | 洲际传媒信息技术(辽宁)有限公司 | 一种数据存储方法和装置 |
CN112631695A (zh) * | 2020-12-22 | 2021-04-09 | 北京达佳互联信息技术有限公司 | 一种数据校验方法、装置、电子设备及存储介质 |
CN112698867A (zh) * | 2020-12-28 | 2021-04-23 | 平安科技(深圳)有限公司 | 注解信息的动态修改方法、装置、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100125602A1 (en) * | 2008-11-17 | 2010-05-20 | International Business Machines Corporation | Method and system for annotation based secure caching |
CN102043653A (zh) * | 2010-12-23 | 2011-05-04 | 中国农业银行股份有限公司 | 缓存配置的修改方法、缓存数据的操作、查询方法及缓存系统 |
CN104360865A (zh) * | 2014-11-28 | 2015-02-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
CN105100289A (zh) * | 2015-09-24 | 2015-11-25 | 中邮科通信技术股份有限公司 | 一种基于注解描述的Web缓存方法 |
-
2015
- 2015-12-31 CN CN201511032531.XA patent/CN106933644A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100125602A1 (en) * | 2008-11-17 | 2010-05-20 | International Business Machines Corporation | Method and system for annotation based secure caching |
CN102043653A (zh) * | 2010-12-23 | 2011-05-04 | 中国农业银行股份有限公司 | 缓存配置的修改方法、缓存数据的操作、查询方法及缓存系统 |
CN104360865A (zh) * | 2014-11-28 | 2015-02-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
CN105100289A (zh) * | 2015-09-24 | 2015-11-25 | 中邮科通信技术股份有限公司 | 一种基于注解描述的Web缓存方法 |
Non-Patent Citations (2)
Title |
---|
ADMIN: "Spring中@Cacheable的用法", 《金丝燕网,[HTTP://SWIFTLET.NET/ARCHIVES/774]》 * |
赵才文: "注释驱动的Spring cache缓存介绍", 《IBM,[HTTPS://WWW.IBM.COM/DEVELOPERWORKS/CN/OPENSOURCE/OS-CN-SPRING-CACHE]》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968750A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种数据存储方法和系统 |
CN109933585A (zh) * | 2019-02-22 | 2019-06-25 | 京东数字科技控股有限公司 | 数据查询方法和数据查询系统 |
CN109933585B (zh) * | 2019-02-22 | 2021-11-02 | 京东数字科技控股有限公司 | 数据查询方法和数据查询系统 |
CN110045952A (zh) * | 2019-04-19 | 2019-07-23 | 京东数字科技控股有限公司 | 代码调用方法与装置 |
CN111767310A (zh) * | 2019-08-19 | 2020-10-13 | 洲际传媒信息技术(辽宁)有限公司 | 一种数据存储方法和装置 |
CN112631695A (zh) * | 2020-12-22 | 2021-04-09 | 北京达佳互联信息技术有限公司 | 一种数据校验方法、装置、电子设备及存储介质 |
CN112631695B (zh) * | 2020-12-22 | 2024-06-11 | 北京达佳互联信息技术有限公司 | 一种数据校验方法、装置、电子设备及存储介质 |
CN112698867A (zh) * | 2020-12-28 | 2021-04-23 | 平安科技(深圳)有限公司 | 注解信息的动态修改方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933644A (zh) | 数据处理方法和装置 | |
CN105760199B (zh) | 一种应用资源加载方法及其设备 | |
CN107404481B (zh) | 用户信息识别方法及装置 | |
CN109377383A (zh) | 产品数据同步方法、装置、计算机设备及存储介质 | |
CN106933935A (zh) | 任务存储方法和装置 | |
CN107193869A (zh) | 工业物联网云平台中数据存取的方法及装置 | |
CN106909575A (zh) | 文本聚类方法和装置 | |
CN106933897A (zh) | 数据查询方法和装置 | |
CN106484738A (zh) | 一种页面处理方法及装置 | |
CN103905310B (zh) | 报文处理的方法及转发设备 | |
CN106708615A (zh) | 一种应用的管理方法及终端 | |
CN105978868A (zh) | Ip地址权限的查找方法及装置 | |
CN113546425B (zh) | 游戏中虚拟物品处理方法、装置、终端和存储介质 | |
CN105337848B (zh) | 网络好友的备注名获得方法和装置 | |
CN110874301A (zh) | 程序卡顿信息的获取方法和装置 | |
CN105160003A (zh) | 一种基于地理位置的app检索排序方法及系统 | |
CN108334778A (zh) | 病毒检测方法、装置、存储介质及处理器 | |
CN107291627A (zh) | 一种数据处理方法和电子设备 | |
CN107180098B (zh) | 一种信息搜索中关键词淘汰方法及装置 | |
CN105677403B (zh) | 一种数据处理方法、装置及设备 | |
CN106202121B (zh) | 数据存储及导出的方法和设备 | |
CN108205460A (zh) | 宿主机可用资源的生成方法和装置 | |
CN110263534B (zh) | 黑名单存储方法、请求拦截方法、装置及存储介质 | |
CN107784022A (zh) | 检测法律文书是否重复的方法及装置 | |
CN106547881A (zh) | 在电子设备中管理图片的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170707 |
|
RJ01 | Rejection of invention patent application after publication |