一种基于拦截器的数据处理方法、设备、存储介质及计算机程序产品与流程
- 国知局
- 2024-07-31 22:55:26
本申请涉及数据库,尤其涉及一种基于拦截器的数据处理方法、设备、存储介质及计算机程序产品。
背景技术:
1、在现有技术中,为了防止数据库内存不足以及大字段过多给磁盘和输入输出造成压力,通常会执行定时清理脚本来定时清理一些二进制日志,但这并不能改变数据库的总存储量,且当某一业务需要的是连续长时间的数据时,这显然也不能很好地满足业务需求。
技术实现思路
1、本申请提供的一种基于拦截器的数据处理方法,旨在解决现有技术中数据库中大字段过多给磁盘和输入输出造成的压力问题以及数据库日志保存的时间较短不能满足更多业务需求的问题。
2、为实现上述目的,本申请采用以下技术方案:
3、本申请的一种基于拦截器的数据处理方法,包括以下步骤:
4、通过自定义拦截器获取目标拦截点的方法调用信息,并从所述方法调用信息中提取出被调用方法的完整类名、方法名以及参数字段初始化规则上下文对象,所述规则上下文对象中封装有规则处理器链和规则配置类,并获取所述规则配置类中所有的规则对象;
5、将所述被调用方法的完整类名、方法名以及参数字段与各个规则对象进行匹配,匹配成功则得到目标规则对象;
6、将规则配置对象和所述目标规则对象作为入参传入所述规则处理器链中以确定目标规则处理器,并基于所述目标规则处理器生成目标解压缩器实例;
7、根据所述目标拦截点的类型确定所述目标解压缩器实例对拦截数据执行的操作,所述操作为压缩或解压缩。
8、作为优选,所述方法还包括:
9、创建具有自定义拦截接口的自定义拦截器,并在所述自定义拦截器的注解中阐述所述自定义拦截器的拦截目标;
10、重写所述自定义拦截器的拦截方法,并在所述拦截方法中指定拦截点的类型及其对应拦截数据的处理方法,所述类型包含用于拦截参数处理过程的第一类型和用于拦截结果集处理过程的第二类型。
11、作为优选,所述拦截数据的处理方法,包括:
12、对在所述第一类型的拦截点处拦截的数据进行压缩操作,对在所述第二类型的拦截点处拦截的数据进行解压缩操作。
13、作为优选,所述初始化规则上下文对象,所述规则上下文对象中封装有规则处理器链和规则配置类,包括:
14、创建规则处理器接口并实例化,将实例化后的各个规则处理器按照顺序组成处理链得到规则处理器链;
15、初始化规则配置类,并创建规则上下文对象;
16、将所述规则处理器链的起始节点和规则配置对象作为参数传递给所述规则上下文对象的构造方法并启动。
17、作为优选,所述将所述被调用方法的完整类名、方法名以及参数字段与各个规则对象进行匹配,匹配成功则得到目标规则对象,包括:
18、将所述被调用方法的完整类名、方法名以及参数字段分别与各个规则对象中的对应属性进行对比,于所述被调用方法的完整类名、方法名以及参数字段与任一规则对象中的对应属性完全匹配时,将所述规则对象作为目标规则对象。
19、作为优选,所述将规则配置对象和所述目标规则对象作为入参传入所述规则处理器链中以确定目标规则处理器,并基于所述目标规则处理器生成目标解压缩器实例,包括:
20、对所述目标规则对象进行解析得到目标规则处理器,并从所述规则配置类中加载所述目标规则处理器对应的实现类得到其完整类名;
21、基于所述目标处理器的完整类名,调用解压缩工厂类来生成封装有压缩方法和解压缩方法的实例,得到目标解压缩器实例。
22、作为优选,所述根据所述目标拦截点的类型确定所述目标解压缩器实例对拦截数据执行的操作,所述操作为压缩或解压缩,包括:
23、于所述目标拦截点为第一类型时,调用所述目标解压缩器实例对拦截数据执行压缩操作,并将压缩后的拦截数据放入json中,同时将其压缩状态设置为true;
24、于所述目标拦截点为第二类型时,对拦截数据做json解析,若无法解析,则不调用所述目标解压缩器实例对所述拦截数据执行解压缩操作,否则,判断其压缩状态是否为true,是则调用所述目标解压缩器实例对所述拦截数据执行解压缩操作,否则不对所述拦截数据进行解压缩。
25、一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如上述中任一项所述的方法的步骤。
26、一种计算机可读存储介质,其上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现如上述中任一项所述的方法的步骤。
27、一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现如上述中任一项所述的方法的步骤
28、本发明具有如下有益效果:
29、本申请通过配置文件动态的对字段进行压缩和解压操作,不仅无须技术人员投入开发,还可以减少进程和数据库之间的io的压力,以及增加磁盘存储量,使得日志的保存时间更长,符合更多的业务需求,且能够兼容历史数据,在使用的过程中还可以动态的对字段进行解压和压缩的配置调整,灵活性好。
30、同时,本申请还可以通过maven的依赖或者直接引入jar的方式在项目中使用,减少了使用者的上手难度,并且还可以用在其他地方,比如说重要的数据加密等功能上,扩展性更好。
技术特征:1.一种基于拦截器的数据处理方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于拦截器的数据处理方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的一种基于拦截器的数据处理方法,其特征在于,所述拦截数据的处理方法,包括:
4.根据权利要求1所述的一种基于拦截器的数据处理方法,其特征在于,所述初始化规则上下文对象,所述规则上下文对象中封装有规则处理器链和规则配置类,包括:
5.根据权利要求1所述的一种基于拦截器的数据处理方法,其特征在于,所述将所述被调用方法的完整类名、方法名以及参数字段与各个规则对象进行匹配,匹配成功则得到目标规则对象,包括:
6.根据权利要求1所述的一种基于拦截器的数据处理方法,其特征在于,所述将规则配置对象和所述目标规则对象作为入参传入所述规则处理器链中以确定目标规则处理器,并基于所述目标规则处理器生成目标解压缩器实例,包括:
7.根据权利要求3所述的一种基于拦截器的数据处理方法,其特征在于,所述根据所述目标拦截点的类型确定所述目标解压缩器实例对拦截数据执行的操作,所述操作为压缩或解压缩,包括:
8.一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现如权利要求1~7中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现如权利要求1~7中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现如权利要求1~7中任一项所述的方法的步骤。
技术总结本申请公开了一种基于拦截器的数据处理方法、设备、存储介质及计算机程序产品,涉及数据库技术领域,该方法包括:获取目标拦截点的方法调用信息,并提取被调用方法的完整类名、方法名以及参数字段;初始化规则上下文对象,并获取所有的规则对象;将被调用方法的完整类名、方法名以及参数字段与各个规则对象进行匹配得到目标规则对象;将规则配置对象和目标规则对象传入规则处理器链中以确定目标规则处理器,基于目标规则处理器生成目标解压缩器实例;确定目标解压缩器实例对拦截数据执行的操作。本申请通过配置文件动态的对字段进行压缩和解压操作,不仅无须技术人员投入开发,还可以减少进程和数据库之间的IO的压力,并增加磁盘存储量。技术研发人员:赵振智,宁海元,闵佳受保护的技术使用者:杭州玳数科技有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/195340.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。