【技术实现步骤摘要】
基于ASM字节码技术的关联业务数据校验方法及装置
[0001]本专利技术涉及金融业务数据领域,特别涉及一种基于
ASM
字节码技术的关联业务数据校验方法及装置
。
技术介绍
[0002]在金融数据领域,业务数据的合法性校验要求较多
。
一般来说,业务数据生命周期每个阶段都会需要进行校验
。
在
Java
开源技术栈中,有比较成熟的基于注解方式的数据校验插件,
hibernate validator
提供简单但丰富的单要素校验器功能,同时支持单要素校验器的自定义开发
。
[0003]但目前
Java
校验器的模式不能提供金融业务中对关联要素的数据校验的要求
。
在金融场景中,对于字段关联性的校验十分常见
。
债券产品数据,需要根据不同计息方式的取值
(
贴现
、
固息
、
浮息
)
,分别对债券票面利率
、 ...
【技术保护点】
【技术特征摘要】
1.
一种基于
ASM
字节码技术的关联业务数据校验方法,包括:步骤
S1
:接收到外部请求的校验参数
object
,获取该参数的
Java
类;步骤
S2
:根据
Java
类的包名
、
类名以及根据
Java
的
KEY.FACTORY
生成对应的该
Java
类的动态校验唯一类名;步骤
S3
:判断该动态校验类静态全局句柄是否存在;步骤
S31
:不存在,通过内置的动态校验构造类,按照校验装配父类的配置,利用
ASM
技术构造动态校验器类;步骤
S32
:存在,该动态校验类已生成,使用该类的静态单例句柄,调用其
validate
校验方法,在完成
ASM
动态代码进行关联字段的逻辑判定后,最终调用
HibernateValidator
校验器,校验该字段上其他注解对应的校验方法;检验完成后,对错误码和错误提示信息进行封装,返回校验结果
。2.
根据权利要求1所述的基于
ASM
字节码技术的关联业务数据校验方法,其特征在于:所述步骤
S31
,通过内置的动态校验构造类,按照校验装配父类的配置,利用
ASM
技术构造动态校验器类,包括:
S311
:按照前述唯一类名和
ID
信息,调用
ASM
接口,生成该动态类,并获得该动态类字节码读写相关方法;
S312
:在该动态类写入无参数的私有构造方法的字节码;
S313
:在该动态类写入获取其静态单例方法的字节码;
S314
:在该动态类中写入实现校验装配父类的校验方法的字节码;
S3141
:通过反射获取所有属性成员注解信息
、
数据类型
、
取值;遍历每个属性成员;
S3142
:该属性是个成员类定义,无需生成字节码,跳过;
S3143
:该属性不存在业务校验注解,无需生成字节码,跳过;
S3144
:该属性具有条件校验注解码,则生成该属性的校验方法条件判断字节码;
S31441
:生成判断属性值满足条件校验逻辑的字节码;
S31442
:再生成不满足条件的校验字节码;
S3145
:该属性具有嵌套校验注解码,表示该属性是一个复杂数据类型,动态生成校验逻辑;生成该属性的动态校验类,并将其的静态实例声明为本动态校验类的静态属性;
S3146
:该属性是集合类型的集合且具有嵌套校验注解,生成该集合类型属性的动态校验类,并将其的静态实例声明为本动态校验类的静态属性;
S...
【专利技术属性】
技术研发人员:谢志艳,王冬明,
申请(专利权)人:上海清算信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。