CN112181804A - 一种参数校验方法、设备以及存储介质 - Google Patents
一种参数校验方法、设备以及存储介质 Download PDFInfo
- Publication number
- CN112181804A CN112181804A CN202010898397.6A CN202010898397A CN112181804A CN 112181804 A CN112181804 A CN 112181804A CN 202010898397 A CN202010898397 A CN 202010898397A CN 112181804 A CN112181804 A CN 112181804A
- Authority
- CN
- China
- Prior art keywords
- verified
- parameter
- parameters
- annotation
- attribute
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种参数校验方法、设备以及存储介质。所述方法包括:基于切面技术创建spring切面,拦截待校验方法;获取所述待校验方法对应的至少一个注解标识;基于预设数据结构规则,解析所述注解标识对应的待检验参数;根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。通过上述技术方案,在对待校验参数进行校验的时候,可以利用预设数据结构规则,解析得到各待校验参数分别对应的至少一个注解标识,进而,可以实现对各种待校验参数进行校验,只要符合数据结构规则的参数都可以添加到待校验参数中,能够满足多样化、多种类型的参数校验需求。
Description
技术领域
本发明实施例涉及互联网技术领域,尤其涉及一种参数校验方法、设备以及存储介质。
背景技术
随着互联网技术的发展,业务越来越复杂,相应的,在进行相关业务应用开发的时候,需要校验的内容也更加复杂。
在现有技术中,对一些入参的合法性校验过程中,需要针对每一个字段进行校验、返回校验结果,校验代码重复、工作量大。面对大量代码的时候,可能无法一次性发现有问题的参数,严重影响联调、测试、排查问题的进度。
因此,需要一种能够进行安全、高效的进行参数校验的方案。
发明内容
本发明实施例提供一种参数校验方法、设备以及存储介质,用以为实现能够进行安全、高效的进行参数校验的方案。
第一方面,本发明实施例提供一种参数校验方法,该方法包括:
基于切面技术创建spring切面,拦截待校验方法;
获取所述待校验方法对应的至少一个注解标识;
基于预设数据结构规则,解析所述注解标识对应的待检验参数;
根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。
可选地,所述基于预设数据结构规则,解析所述注解标识对应的待检验参数,包括:
获取所述注解标识对应的待校验内容;
根据所述待校验内容中包含的分隔符,解析所述待校验内容中的所述待校验参数,得到所述待校验参数包含的对象和属性。
可选地,获取所述注解标识对应的待校验内容之前,还包括:
确定所述待校验参数中包含的所述对象和所述属性分别对应的至少一个所述注解标识;
根据预设数据结构规则,利用所述分隔符对所述待校验参数、所述对象以及所述属性进行关联,生成所述注解标识对应的所述待校验内容。
可选地,所述根据所述待校验参数对应的至少一个所述注解标识,对所述待校验参数进行校验,包括:
获取所述待校验参数中各所述属性对应的属性值;
根据所述待校验参数与至少一所述注解标识之间的对应关系,确定所述属性值对应的至少一个所述注解标识;
根据所述注解标识对应的校验逻辑,对所述属性值进行校验。
可选地,所述根据所述注解标识对应的校验逻辑,对所述属性值进行校验,包括:
若所述属性值对应多个所述注解标识,则根据所述校验逻辑的优先级顺序对所述属性值进行校验。
可选地,对所述属性值进行校验之后,还包括:
若所述属性值校验失败,则根据预设返回格式返回所述属性值校验失败的字段信息。
可选地,还包括:若所述属性值校验失败,则判断所述属性的执行级别;
若所述属性的执行级别高于阈值,则继续执行后续所述校验逻辑的校验。
可选地,对所述待校验参数进行校验之后,还包括:输出所述待校验方法进行校验后的校验日志。
第二方面,本发明实施例提供一种电子设备,包括处理器、存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如第一方面所述的参数校验方法。
第三方面,本发明实施例提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:
基于切面技术创建spring切面,拦截待校验方法;
获取所述待校验方法对应的至少一个注解标识;
基于预设数据结构规则,解析所述注解标识对应的待检验参数;
根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。
在本发明实施例中,在需要对参数进行校验的时候,基于切面技术创建spring切面,拦截待校验方法;获取所述待校验方法对应的至少一个注解标识;基于预设数据结构规则,解析所述注解标识对应的待检验参数;根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。通过上述技术方案,在对待校验参数进行校验的时候,可以利用预设数据结构规则,解析得到各待校验参数分别对应的至少一个注解标识,进而,可以实现对各种待校验参数进行校验,只要符合数据结构规则的参数都可以添加到待校验参数中,能够满足多样化、多种类型的参数校验需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种参数校验方法的流程示意图;
图2为本申请实施例提供的一种设定待校验参数方法的流程示意图;
图3为本申请实施例提供的一种校验过程的流程示意图;
图4为本申请实施例提供的一种参数校验装置的结构示意图;
图5为与图4所述实施例提供的参数校验装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
在现有的入参合法性校验过程中,一种方式是采用if…else…方式,若需要校验的参数比较多,则需要大量重复代码,增大人员工作量。而且,无法在一次发现所有被校验参数存在的问题,不利于联调、测试、排查问题等等。还有一种方式是在bean属性上使用第三方注解,单独编写各个注解分别对应的校验逻辑方法,在需要校验的地方引入并执行相应的校验过程。上述方案中校验过程繁琐,尤其是需要对属性进行校验的时候,通常单独为参数内属性增加注解,会对正常程序执行以及相关参数正常校验产生影响。同时,还可能遇到某些待校验的类属于外部的包,无法进行修改。因此,本申请提出一种能够更简单、更全面的对参数进行校验。
图1为本申请实施例提供的一种参数校验方法的流程示意图,如图1所示,该方法包括以下步骤:
101:基于切面技术创建spring切面,拦截待校验方法。
102:获取所述待校验方法对应的至少一个注解标识。
103:基于预设数据结构规则,解析所述注解标识对应的待检验参数。
104:根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。
在实际应用中,进行参数校验之前,需要根据时间需要进行注解的自定义。比如,自定义待校验的参数、属性、提示信息、业务场景描述、日志级别、校验失败是否自动返回等等。
这里所说的拦截待校验方法,是用户根据校验需求进行选择的。具体来说,待校验方法可以是某个方法包含的参数、类、对象以及属性等等。针对不同类型的待校验参数所要采用的校验方法不完全相同。在实际应用中,利用切面(AOP)技术,创建spring切面,并为各待校验的对象进行spring注解的定义。例如,当接收到针对某个目标程序代码的调用请求,基于spring切面对该拦截对象进行拦截。这里所说的参数类型可以包括方法参数、属性等不同类型的数据。
在本申请一个或者多个实施例中,所述基于预设数据结构规则,解析所述注解标识对应的待检验参数,包括:获取所述注解标识对应的待校验内容;根据所述待校验内容中包含的分隔符,解析所述待校验内容中的所述待校验参数,得到所述待校验参数包含的对象和属性。
为了便于理解,下面举例说明,例如,下面为一段注解标识及其对应的待校验内容。
@NotNull(fields=“user:name,age,phone”,businessDesc=“保存用户信息”)
@Pattern(fields=“user:phone”,Pattern=“1\\d{10}”)
@Max(fields=“user:age”,Value=“60”)
从上述实施例中可以看到,每一种注解标识都对应一组待校验内容,在该待校验内容中同时包含有参数、类、对象、属性等多种不同类型待校验内容。为了能够区分待校验内容中不同类型参数,设定了用于区分的分隔符。同一个注解标识对应的所有待校验内容都要按照该注解标识表征的校验逻辑进行校验。在实际应用中,某个属性可能同时对应多种注解标识,也就意味着,该属性需要进行多种不同校验逻辑的校验工作。比如,上例中phone属性同时对应两个注解标识:@NotNull和@Pattern。这样,可以更高效、安全的获取到各个待校验参数以及参数中的类、对象、属性等等。
在本申请一个或者多个实施例中,获取所述注解标识对应的待校验内容之前,还包括:确定所述待校验参数中包含的所述对象和所述属性分别对应的至少一个所述注解标识;根据预设数据结构规则,利用所述分隔符对所述待校验参数、所述对象以及所述属性进行关联,生成所述注解标识对应的所述待校验内容。
在针对不同的注解标识对应的待校验内容的设定的时候,需要选定用于区分不同类型待校验参数的分隔符,这里所说的分隔符可以包括:方法参数分隔符、对象属性分隔符、属性间分隔符。例如,参数之间'|'分隔,对象和属性':'分隔,属性之间','分隔。@NotNull(fields="configDto:classificationId,classificationName,dataTypeId,dataTypeName,"+"acquireDataPattern,getDataMode,getDataTime,ruleConfigStatus,operator|test",businessDesc="新增配置")。
需要说明的是,这些分隔符需要工作人员在进行校验之前,根据实际应用需求,确定需要添加分隔符的参数。这里对分隔符进行举例说明,并不够成对本申请技术方案的限制,用户可以根据实际需求选择合适的符号作为分隔符。
通过为不同类型参数分别设置对应的分隔符,在进行参数校验的时候,可以很快地根据分隔符确定该参数的参数类型。而且,通过上述方案,在对属性进行参数校验的时候,不再需要针对属性本身进行注解的定义,避免对相关参数校验或程序执行产生影响。有些类是外部的包,无法修改。此外,各类型参数都可以进行校验,而且各个参数校验相互独立,修改某个属性的校验规则也不会影响其他校验的接口。
此外,由于同一个注解标识对应的所有待校验内容都要按照该注解标识表征的校验逻辑进行分组。而不是根据参数类型(比如,按照属性分组、按照类分组),不需要不再需要针对属性本身进行注解的定义。在后续需要增加或者减少对某个属性或者类的校验的时候,可以直接对某个注解标识对应的待校验内容进行修改,而不会影响到其他校验入口。换言之,本申请技术方案,提出一种数据结构规则,是根据注解标识进行分组并通过分隔符进行参数、类、对象、属性之间的区分以及关联。方便后续对类、对象、属性等进行校验规则修改。提升安全效果的同时,也使得校验参数的修改、设定更加简单、高效。
为了便于理解,下面对设定待校验参数的过程进行举例说明。
如图2为本申请实施例提供的一种设定待校验参数方法的流程示意图。从图2中可以看到,
201:确定校验类型,比如,确定非空校验类型、正则校验类型、边界值校验类型等等。
202:为每种校验类型分别定义对应的注解标识,比如,非空校验类型对应的注解标识@NotNull,正则校验类型对应的注解标识@Pattern,边界值校验类型对应的注解标识@Max。
203:将待校验方法中的参数按照校验类型划分到对应的注解标识分组当中。这里所说的参数可以是单个参数、对象、类、对象内属性等等。
204:按照预设数据结构规则,设定各注解标识分别对应的待校验内容,例如,参数之间'|'分隔,对象和属性':'分隔,属性之间','分隔。
在本申请一个或者多个实施例中,所述根据所述待校验参数对应的至少一个所述注解标识,对所述待校验参数进行校验,包括:获取所述待校验参数中各所述属性对应的属性值;根据所述待校验参数与至少一所述注解标识之间的对应关系,确定所述属性值对应的至少一个所述注解标识;根据所述注解标识对应的校验逻辑,对所述属性值进行校验。
在实际应用中,获取到待校验参数之后,查找到各待校验参数中包含的属性分别对应的属性值。容易理解的是,不同的属性,需要校验的内容不同,对应的校验逻辑也不完全相同。有的属性需要利用一种校验逻辑对其对应的属性值进行校验,而有的则需要利用多种校验逻辑对其对应的属性值进行校验。
这里所说的校验逻辑是针对属性进行设定的,比如,对于手机号(也就是上述例中的phone)进行校验的时候,需要进行非空校验、正则校验;对年龄(也就是上述例中age)进行校验的时候,需要进行非空校验、边界值校验。这里所说的校验逻辑可以根据实际需求进行设定,上述校验逻辑仅作为举例说明,并非对本申请技术方案的限制。
在本申请一个或者多个实施例中,所述根据所述注解标识对应的校验逻辑,对所述属性值进行校验,包括:若所述属性值对应多个所述注解标识,则根据所述校验逻辑的优先级顺序对所述属性值进行校验。
在实际应用中,当某个属性的属性值需要进行多种不同校验的时候,确定属性值对应的多个注解标识,注解标识确定该属性值对应的校验逻辑。再确定属性值对应的多个校验逻辑的排序顺序(这个排序顺序,可以是由用户预先设定的),按照排序顺序进行依次进行校验,比如,通常将非空校验排在第一位。校验过程中,如果校验失败,则根据预设返回格式返回所述属性值校验失败的字段信息。进一步地,若所述属性值校验失败,则判断所述属性的执行级别;若所述属性的执行级别高于阈值,则继续执行后续所述校验逻辑的校验。若属性的执行级别不高于阈值,则可能终止对该属性值的其他校验逻辑的校验。
在本申请一个或者多个实施例中,对所述待校验参数进行校验之后,还包括:输出所述待校验方法进行校验后的校验日志。以便用户能够直观的看到该待校验方法的整体校验结果
为了便于理解,下面结合流程图对整体校验流程进行举例说明。如图3为本申请实施例提供的一种校验过程的流程示意图。
运行程序,当程序执行到待校验方法(比如,saveUser方法)的时候,拦截此方法带有的不同类型的注解,确定对应的注解标识。获取该待校验方法上的注解,比如,这里能获取到三个注解,分别为@NotNull、@Pattern、@Max。进而,获取注解标识对应的待检验内容,这些内容是按照一定的数据结构规则生成的内容。这些待校验内容中包含有不同类型的参数以及各个参数分别对应的校验逻辑。例如,校验参数包括属性分别为name、age、phone,校验逻辑为非空校验,phone对应的另一个校验逻辑为正则校验(比如,1\\d{10},为1开头后续有10位数字),age对应的另一个校验逻辑为边界值校验(比如,max60,最大60岁)。获取到各个属性对应的属性值,比如,name=空,age=65,phone=123456。则循环遍历所有属性,比如,属性为name,先判断是否需要对name进行非空校验,也就是name是否在@NotNull对应的分组中。若在,则对其进行非空校验,若校验失败,则终止校验,并将校验结果加入到失败结果集中,以便后续输出校验失败相关结果。对age进行校验,先判断是否需要对age进行非空校验,也就是age是否在@NotNull对应的分组中,若在,则对其进行非空校验,若校验成功,则继续判断是否需要进行边界值校验,若是,则进行边界值校验;由于age=65,则校验失败。对phone进行校验,先判断是否需要对phone进行非空校验,也就是phone是否在@NotNull对应的分组中,若在,则对其进行非空校验,若校验成功,则继续判断是否需要进行正则校验,若是,则进行正则校验;由于phone=123456,虽然满足第一位为1,但是后续位数小于10,则校验失败。
进而,对该待校验方法的校验结果进行汇总,根据预设格式输出校验失败的提示信息,比如,包括属性、属性值、失败原因等等。
现有技术中则是针对属性本身添加注解,在程序执行的时候,需要挨个遍历各个属性是否被添加了注解,会执行很多不需要的动作,也会产生很多不需要的校验结果,尤其是仅需要对很少属性进行校验的时候,校验效率低。在本申请技术方案中,在注解对应的内容中建立需要执行对应校验逻辑的参数、对象、属性等的集合,凡是需要被校验的属性都在这个集合当中,在进行校验之前已经清楚知道哪个属性需要校验,哪些不需要校验(换言之,未在注解对应待校验内容当中的参数、属性则是不需要校验的)这种方式在执行的时候,可以根据注解标识准确、快速查找到需要校验的属性,而且不会对不需要校验的内容进行遍历,明显提升校验的效率和准确率。
基于上述实施例,在需要对参数进行校验的时候,基于切面技术创建spring切面,拦截待校验方法;获取所述待校验方法对应的至少一个注解标识;基于预设数据结构规则,解析所述注解标识对应的待检验参数;根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。通过上述技术方案,在对待校验参数进行校验的时候,可以利用预设数据结构规则,解析得到各待校验参数分别对应的至少一个注解标识,进而,可以实现对各种待校验参数进行校验,只要符合数据结构规则的参数都可以添加到待校验参数中,能够满足多样化、多种类型的参数校验需求。
基于同样的思路,本申请实施例还提供一种参数校验装置。如图4为本申请实施例提供的一种参数校验装置的结构示意图。从图4中可以看到,所述装置包括:
拦截模块41,用于基于切面技术创建spring切面,拦截待校验方法。
获取模块42,用于获取所述待校验方法对应的至少一个注解标识。
解析模块43,用于基于预设数据结构规则,解析所述注解标识对应的待检验参数。
校验模块44,用于根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。
可选地,解析模块43,还用于获取所述注解标识对应的待校验内容;根据所述待校验内容中包含的分隔符,解析所述待校验内容中的所述待校验参数,得到所述待校验参数包含的对象和属性。
可选地,还包括内容生成模块45,用于确定所述待校验参数中包含的所述对象和所述属性分别对应的至少一个所述注解标识;根据预设数据结构规则,利用所述分隔符对所述待校验参数、所述对象以及所述属性进行关联,生成所述注解标识对应的所述待校验内容。
可选地,校验模块44,还用于获取所述待校验参数中各所述属性对应的属性值;根据所述待校验参数与至少一所述注解标识之间的对应关系,确定所述属性值对应的至少一个所述注解标识;根据所述注解标识对应的校验逻辑,对所述属性值进行校验。
可选地,校验模块44,还用于若所述属性值对应多个所述注解标识,则根据所述校验逻辑的优先级顺序对所述属性值进行校验。
可选地,还包括:若所述属性值校验失败,则根据预设返回格式返回所述属性值校验失败的字段信息。
可选地,还包括:若所述属性值校验失败,则判断所述属性的执行级别;
若所述属性的执行级别高于阈值,则继续执行后续所述校验逻辑的校验。
可选地,还包括:输出所述待校验方法进行校验后的校验日志。
图4所示装置可以执行前述图1中服务端所涉及的各步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图4所示参数校验装置的结构可实现为一电子设备,如图5所示为与图4所述实施例提供的参数校验装置对应的电子设备的结构示意图,该电子设备可以包括:处理器51、存储器52,所述存储器52用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器51执行时实现前述各实施例中服务端所执行的各步骤。
可选地,该电子设备中还可以包括通信接口53,用于与其他设备进行通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,该计算机程序使服务端执行时实现上述各实施例中的参数校验方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程资源更新设备的处理器以产生一个机器,使得通过计算机或其他可编程资源更新设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程资源更新设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程资源更新设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种参数校验方法,其特征在于,所述方法包括:
基于切面技术创建spring切面,拦截待校验方法;
获取所述待校验方法对应的至少一个注解标识;
基于预设数据结构规则,解析所述注解标识对应的待检验参数;
根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。
2.根据权利要求1所述的方法,其特征在于,所述基于预设数据结构规则,解析所述注解标识对应的待检验参数,包括:
获取所述注解标识对应的待校验内容;
根据所述待校验内容中包含的分隔符,解析所述待校验内容中的所述待校验参数,得到所述待校验参数包含的对象和属性。
3.根据权利要求2所述的方法,其特征在于,获取所述注解标识对应的待校验内容之前,还包括:
确定所述待校验参数中包含的所述对象和所述属性分别对应的至少一个所述注解标识;
根据预设数据结构规则,利用所述分隔符对所述待校验参数、所述对象以及所述属性进行关联,生成所述注解标识对应的所述待校验内容。
4.根据权利要求2所述的方法,其特征在于,所述根据所述待校验参数对应的至少一个所述注解标识,对所述待校验参数进行校验,包括:
获取所述待校验参数中各所述属性对应的属性值;
根据所述待校验参数与至少一所述注解标识之间的对应关系,确定所述属性值对应的至少一个所述注解标识;
根据所述注解标识对应的校验逻辑,对所述属性值进行校验。
5.根据权利要求4所述的方法,其特征在于,所述根据所述注解标识对应的校验逻辑,对所述属性值进行校验,包括:
若所述属性值对应多个所述注解标识,则根据所述校验逻辑的优先级顺序对所述属性值进行校验。
6.根据权利要求4所述的方法,其特征在于,对所述属性值进行校验之后,还包括:
若所述属性值校验失败,则根据预设返回格式返回所述属性值校验失败的字段信息。
7.根据权利要求6所述的方法,其特征在于,还包括:若所述属性值校验失败,则判断所述属性的执行级别;
若所述属性的执行级别高于阈值,则继续执行后续所述校验逻辑的校验。
8.根据权利要求1所述的方法,其特征在于,对所述待校验参数进行校验之后,还包括:输出所述待校验方法进行校验后的校验日志。
9.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现权利要求1至8中任一项所述的参数校验方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:
基于切面技术创建spring切面,拦截待校验方法;
获取所述待校验方法对应的至少一个注解标识;
基于预设数据结构规则,解析所述注解标识对应的待检验参数;
根据所述待校验参数与至少一个所述注解标识的对应关系,对所述待校验参数进行校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010898397.6A CN112181804B (zh) | 2020-08-31 | 2020-08-31 | 一种参数校验方法、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010898397.6A CN112181804B (zh) | 2020-08-31 | 2020-08-31 | 一种参数校验方法、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181804A true CN112181804A (zh) | 2021-01-05 |
CN112181804B CN112181804B (zh) | 2023-09-08 |
Family
ID=73924032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010898397.6A Active CN112181804B (zh) | 2020-08-31 | 2020-08-31 | 一种参数校验方法、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181804B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254951A (zh) * | 2021-04-23 | 2021-08-13 | 天津车之家数据信息技术有限公司 | 一种数据处理方法及计算设备 |
CN113535553A (zh) * | 2021-06-30 | 2021-10-22 | 上海联影医疗科技股份有限公司 | 参数校验方法、计算机设备和存储介质 |
CN113608913A (zh) * | 2021-08-05 | 2021-11-05 | 上海微盟企业发展有限公司 | 参数校验方法、系统、装置及存储介质 |
CN113742235A (zh) * | 2021-09-09 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种校验代码的方法和装置 |
CN113779004A (zh) * | 2021-02-19 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种数据校验的方法和装置 |
CN114356427A (zh) * | 2022-01-06 | 2022-04-15 | 成都新希望金融信息有限公司 | 一种扫描过滤方法、装置、电子设备及存储介质 |
CN114564206A (zh) * | 2022-03-04 | 2022-05-31 | 中信银行股份有限公司 | 一种数据非空校验方法、装置、设备及可读存储介质 |
CN114647233A (zh) * | 2022-05-18 | 2022-06-21 | 浙江国利网安科技有限公司 | Plc运行组态监测方法、装置、存储介质及电子设备 |
CN114860549A (zh) * | 2022-05-30 | 2022-08-05 | 北京新唐思创教育科技有限公司 | 埋点数据校验方法、装置、设备和存储介质 |
CN116795426A (zh) * | 2023-08-21 | 2023-09-22 | 智慧眼科技股份有限公司 | 一种数据处理方法及系统 |
CN116827566A (zh) * | 2022-03-21 | 2023-09-29 | 中移物联网有限公司 | 一种设备数据传输方法、装置及系统 |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2505370A1 (en) * | 2004-04-26 | 2005-10-26 | Watchfire Corporation | Method and system for website analysis |
US20080222611A1 (en) * | 2007-03-09 | 2008-09-11 | Microsoft Corporation | Generic validation layer for object properties |
US7840939B1 (en) * | 2006-03-09 | 2010-11-23 | Oracle America, Inc. | Method for managing annotation inheritance |
US20110307959A1 (en) * | 2010-06-14 | 2011-12-15 | Microsoft Corporation | Selectively exposing base class libraries based on application execution context |
US20120066661A1 (en) * | 2010-09-09 | 2012-03-15 | International Business Machines Corporation | Verifying programming artifacts generated from ontology artifacts or models |
US20120311535A1 (en) * | 2011-05-31 | 2012-12-06 | Microsoft Corporation | Static semantic analysis of dynamic languages |
US20160321165A1 (en) * | 2015-04-30 | 2016-11-03 | Emc Corporation | Annotated test interfaces |
US20170039064A1 (en) * | 2015-08-04 | 2017-02-09 | International Business Machines Corporation | Annotations in software development |
US9652359B1 (en) * | 2016-10-27 | 2017-05-16 | Semmle Limited | Annotation natural keys for source code analysis |
WO2017101606A1 (zh) * | 2015-12-15 | 2017-06-22 | 北京奇虎科技有限公司 | 一种数据采集分析系统和方法 |
CN106991023A (zh) * | 2017-03-22 | 2017-07-28 | 深圳市彬讯科技有限公司 | 一种接口参数校验方法及组件 |
CN107908541A (zh) * | 2017-07-26 | 2018-04-13 | 平安壹钱包电子商务有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
CN107908442A (zh) * | 2017-12-07 | 2018-04-13 | 武汉斗鱼网络科技有限公司 | 基于spring的资源加载方法、装置、终端设备及计算机可读存储介质 |
US20180137095A1 (en) * | 2016-04-26 | 2018-05-17 | Seculayer Co., Ltd. | Method for performing normalization of unstructured data and computing device using the same |
CN108415834A (zh) * | 2018-02-12 | 2018-08-17 | 平安科技(深圳)有限公司 | 注解后端校验方法、装置、计算机设备及存储介质 |
CN108595680A (zh) * | 2018-05-02 | 2018-09-28 | 四川长虹电器股份有限公司 | Xbrl的缓存的实现方法 |
CN108694194A (zh) * | 2017-04-10 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 一种构造数据对象的方法和装置 |
CN109766102A (zh) * | 2018-12-30 | 2019-05-17 | 卓集送信息科技(武汉)有限公司 | 一种自动解析请求参数的匹配方法 |
KR20190091042A (ko) * | 2018-01-26 | 2019-08-05 | 성신여자대학교 연구 산학협력단 | 소프트웨어 분석 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 |
CN110147261A (zh) * | 2019-04-15 | 2019-08-20 | 平安普惠企业管理有限公司 | 基于调用接口的参数校验方法及相关设备 |
CN110413269A (zh) * | 2019-06-18 | 2019-11-05 | 深圳壹账通智能科技有限公司 | 接口编码方法、服务器及计算机可读存储介质 |
CN110673838A (zh) * | 2019-09-10 | 2020-01-10 | 四川新网银行股份有限公司 | 输入校验的方法 |
CN110765422A (zh) * | 2018-07-25 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 一种参数校验方法和装置 |
CN110765021A (zh) * | 2019-10-25 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置、计算机可读存储介质和计算机设备 |
CN111339137A (zh) * | 2020-02-19 | 2020-06-26 | 北京奇艺世纪科技有限公司 | 一种数据校验方法及装置 |
CN111475516A (zh) * | 2020-03-05 | 2020-07-31 | 深圳壹账通智能科技有限公司 | 分布式锁的调用方法、装置、计算机设备及存储介质 |
CN111475331A (zh) * | 2020-03-24 | 2020-07-31 | 平安银行股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
CN111596922A (zh) * | 2020-05-15 | 2020-08-28 | 山东汇贸电子口岸有限公司 | 基于redis实现自定义缓存注解的方法 |
-
2020
- 2020-08-31 CN CN202010898397.6A patent/CN112181804B/zh active Active
Patent Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2505370A1 (en) * | 2004-04-26 | 2005-10-26 | Watchfire Corporation | Method and system for website analysis |
US7840939B1 (en) * | 2006-03-09 | 2010-11-23 | Oracle America, Inc. | Method for managing annotation inheritance |
US20080222611A1 (en) * | 2007-03-09 | 2008-09-11 | Microsoft Corporation | Generic validation layer for object properties |
US20110307959A1 (en) * | 2010-06-14 | 2011-12-15 | Microsoft Corporation | Selectively exposing base class libraries based on application execution context |
US20120066661A1 (en) * | 2010-09-09 | 2012-03-15 | International Business Machines Corporation | Verifying programming artifacts generated from ontology artifacts or models |
US20120311535A1 (en) * | 2011-05-31 | 2012-12-06 | Microsoft Corporation | Static semantic analysis of dynamic languages |
US20160321165A1 (en) * | 2015-04-30 | 2016-11-03 | Emc Corporation | Annotated test interfaces |
US20170039064A1 (en) * | 2015-08-04 | 2017-02-09 | International Business Machines Corporation | Annotations in software development |
WO2017101606A1 (zh) * | 2015-12-15 | 2017-06-22 | 北京奇虎科技有限公司 | 一种数据采集分析系统和方法 |
US20180137095A1 (en) * | 2016-04-26 | 2018-05-17 | Seculayer Co., Ltd. | Method for performing normalization of unstructured data and computing device using the same |
US9652359B1 (en) * | 2016-10-27 | 2017-05-16 | Semmle Limited | Annotation natural keys for source code analysis |
CN106991023A (zh) * | 2017-03-22 | 2017-07-28 | 深圳市彬讯科技有限公司 | 一种接口参数校验方法及组件 |
CN108694194A (zh) * | 2017-04-10 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 一种构造数据对象的方法和装置 |
CN107908541A (zh) * | 2017-07-26 | 2018-04-13 | 平安壹钱包电子商务有限公司 | 接口测试方法、装置、计算机设备及存储介质 |
CN107908442A (zh) * | 2017-12-07 | 2018-04-13 | 武汉斗鱼网络科技有限公司 | 基于spring的资源加载方法、装置、终端设备及计算机可读存储介质 |
KR20190091042A (ko) * | 2018-01-26 | 2019-08-05 | 성신여자대학교 연구 산학협력단 | 소프트웨어 분석 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 |
CN108415834A (zh) * | 2018-02-12 | 2018-08-17 | 平安科技(深圳)有限公司 | 注解后端校验方法、装置、计算机设备及存储介质 |
CN108595680A (zh) * | 2018-05-02 | 2018-09-28 | 四川长虹电器股份有限公司 | Xbrl的缓存的实现方法 |
CN110765422A (zh) * | 2018-07-25 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 一种参数校验方法和装置 |
CN109766102A (zh) * | 2018-12-30 | 2019-05-17 | 卓集送信息科技(武汉)有限公司 | 一种自动解析请求参数的匹配方法 |
CN110147261A (zh) * | 2019-04-15 | 2019-08-20 | 平安普惠企业管理有限公司 | 基于调用接口的参数校验方法及相关设备 |
CN110413269A (zh) * | 2019-06-18 | 2019-11-05 | 深圳壹账通智能科技有限公司 | 接口编码方法、服务器及计算机可读存储介质 |
CN110673838A (zh) * | 2019-09-10 | 2020-01-10 | 四川新网银行股份有限公司 | 输入校验的方法 |
CN110765021A (zh) * | 2019-10-25 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置、计算机可读存储介质和计算机设备 |
CN111339137A (zh) * | 2020-02-19 | 2020-06-26 | 北京奇艺世纪科技有限公司 | 一种数据校验方法及装置 |
CN111475516A (zh) * | 2020-03-05 | 2020-07-31 | 深圳壹账通智能科技有限公司 | 分布式锁的调用方法、装置、计算机设备及存储介质 |
CN111475331A (zh) * | 2020-03-24 | 2020-07-31 | 平安银行股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
CN111596922A (zh) * | 2020-05-15 | 2020-08-28 | 山东汇贸电子口岸有限公司 | 基于redis实现自定义缓存注解的方法 |
Non-Patent Citations (7)
Title |
---|
AMOURLEE: "自定义注解-(属性、类 方法)", 《HTTPS://WWW.CNBLOGS.COM/DONGL961230/P/13554629.HTML》 * |
七十二年蝉: "Springboot通过切面校验参数完整性", 《HTTPS://WWW.JIANSHU.COM/P/9BAAC0BBD9F3》 * |
七十二年蝉: "Springboot通过切面校验参数完整性", 《HTTPS://WWW.JIANSHU.COM/P/9BAAC0BBD9F3》, 10 April 2019 (2019-04-10), pages 1 - 4 * |
尹莉;郭璐;李旭芬;: "基于引用功能和引用极性的一个引用分类模型研究", 情报杂志, no. 07 * |
张亲松: "自定义注解验证参数", 《HTTPS://BLOG.CSDN.NET/JACK_ZHANGQS/ARTICLE/DETAILS/78735902》 * |
李晓明;黄慧;应毅;刘洋;: "基于SpringMVC框架的表单校验与异常处理应用与实战研究", 电脑编程技巧与维护, no. 12 * |
隔壁W王叔叔: "自定义注解+注解功能实现的一个例子", 《HTTPS://WWW.CNBLOGS.COM/UNCLEWANG001/P/11044902.HTML》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779004A (zh) * | 2021-02-19 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种数据校验的方法和装置 |
CN113254951A (zh) * | 2021-04-23 | 2021-08-13 | 天津车之家数据信息技术有限公司 | 一种数据处理方法及计算设备 |
CN113535553B (zh) * | 2021-06-30 | 2023-02-28 | 上海联影医疗科技股份有限公司 | 参数校验方法、计算机设备和存储介质 |
CN113535553A (zh) * | 2021-06-30 | 2021-10-22 | 上海联影医疗科技股份有限公司 | 参数校验方法、计算机设备和存储介质 |
CN113608913A (zh) * | 2021-08-05 | 2021-11-05 | 上海微盟企业发展有限公司 | 参数校验方法、系统、装置及存储介质 |
CN113742235A (zh) * | 2021-09-09 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种校验代码的方法和装置 |
CN114356427A (zh) * | 2022-01-06 | 2022-04-15 | 成都新希望金融信息有限公司 | 一种扫描过滤方法、装置、电子设备及存储介质 |
CN114564206A (zh) * | 2022-03-04 | 2022-05-31 | 中信银行股份有限公司 | 一种数据非空校验方法、装置、设备及可读存储介质 |
CN116827566A (zh) * | 2022-03-21 | 2023-09-29 | 中移物联网有限公司 | 一种设备数据传输方法、装置及系统 |
CN114647233B (zh) * | 2022-05-18 | 2022-09-30 | 浙江国利网安科技有限公司 | Plc运行组态监测方法、装置、存储介质及电子设备 |
CN114647233A (zh) * | 2022-05-18 | 2022-06-21 | 浙江国利网安科技有限公司 | Plc运行组态监测方法、装置、存储介质及电子设备 |
CN114860549A (zh) * | 2022-05-30 | 2022-08-05 | 北京新唐思创教育科技有限公司 | 埋点数据校验方法、装置、设备和存储介质 |
CN114860549B (zh) * | 2022-05-30 | 2024-02-20 | 北京新唐思创教育科技有限公司 | 埋点数据校验方法、装置、设备和存储介质 |
CN116795426A (zh) * | 2023-08-21 | 2023-09-22 | 智慧眼科技股份有限公司 | 一种数据处理方法及系统 |
CN116795426B (zh) * | 2023-08-21 | 2023-11-10 | 智慧眼科技股份有限公司 | 一种数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112181804B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112181804A (zh) | 一种参数校验方法、设备以及存储介质 | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN109032825B (zh) | 一种故障注入方法、装置及设备 | |
CN111290742A (zh) | 参数验证方法、装置、电子设备及可读存储介质 | |
CN106487603A (zh) | 一种响应测试方法及装置 | |
CN110795305B (zh) | 用于处理和管理web流量数据的系统、装置和方法 | |
CN111158741A (zh) | 监控业务模块对第三方类库依赖关系变化的方法及装置 | |
CN107832446B (zh) | 一种配置项信息的搜索方法及计算设备 | |
CN112181430A (zh) | 代码变更统计方法、装置、电子设备及存储介质 | |
CN106708897B (zh) | 一种数据仓库质量保障方法、装置和系统 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN112069052A (zh) | 一种异常对象检测方法、装置、设备及存储介质 | |
CN110516258B (zh) | 数据校验方法及装置、存储介质、电子装置 | |
CN116661758B (zh) | 一种优化日志框架配置的方法、装置、电子设备及介质 | |
CN113419738A (zh) | 接口文档的生成方法、装置及接口管理设备 | |
CN113282606A (zh) | 数据处理方法、装置、存储介质和计算设备 | |
CN110928941A (zh) | 一种数据分片抽取方法及装置 | |
CN114281549A (zh) | 数据的处理方法及装置 | |
CN112884475A (zh) | 一种智能合约资损监控系统的测试方法及系统 | |
CN109308256A (zh) | 一种java程序动态分析方法、设备和存储介质 | |
US11347722B2 (en) | Big data regression verification method and big data regression verification apparatus | |
CN110334098A (zh) | 一种基于脚本的数据库合并方法及系统 | |
CN111726373B (zh) | 通信链路构建方法、装置和设备 | |
US20240061675A1 (en) | Source code correction system | |
US11561979B2 (en) | Dynamically detecting and correcting errors in queries |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |