本发明专利技术提供一种基于AOP的RESTful API统一参数校验方法,属于参数校验技术领域,本发明专利技术使用AOP技术在接口数量大的情况下,对相似的RESTful API进行统一的参数验证,包括以下步骤:1.搭建Spring框架;2.在Spring框架中配置包扫描的路径、开启AOP功能;3.定义参数验证切面类,进行具体参数验证处理;4.使用表达式,自定义注解定义参数验证的覆盖范围。本发明专利技术的应用使得在接口数量大的情况下,可以对相似的RESTful API快速完成统一的参数验证,这种方式配置灵活,易于修改,并且能够让参数验证与业务代码相解耦,提高整个系统的可维护性。提高整个系统的可维护性。提高整个系统的可维护性。
【技术实现步骤摘要】
一种基于AOP的RESTful API统一参数校验方法
[0001]本专利技术涉及参数校验技术,尤其涉及一种基于AOP的RESTful API统一参数校验方法。
技术介绍
[0002]参数校验是软件程序开发中必不可少的一个环节步骤,在早期的程序开发中,参数校验工作需要在每个方法中嵌入验证的代码,虽然相同的参数验证代码可以抽取成方法,统一进行管理和修改。但是,这样的参数验证方法显然具有很强的侵入性,并且提高了代码的重复率,当参数验证代码需要新增、修改、删除时,需要手动进行插入、更新、删除相应的验证代码。在系统接口数量较多的时候,这种方式就更加不利于系统的维护。
技术实现思路
[0003]为了解决如何在接口数量大的情况下,对相似的RESTful API进行统一的参数验证的问题,本专利技术提供了一种基于AOP的RESTful API统一参数校验方法,针对不同接口提供不同的参数验证。
[0004]本专利技术的技术方案是:
[0005]一种基于AOP的RESTful API统一参数校验方法,使用AOP技术对相似的RESTful API进行统一的参数验证,包括以下步骤:
[0006]1)搭建Spring框架,使用Spring框架搭建Web项目,编写RESTful API;
[0007]2)在Spring框架中配置包扫描的路径、开启AOP功能;
[0008]3)定义参数验证切面类,进行具体参数验证处理;
[0009]4)使用表达式,自定义注解定义参数验证的覆盖范围。<br/>[0010]进一步的,
[0011]所述Spring框架包括Spring MVC、Spring Boot、Spring Cloud,
[0012]进一步的,
[0013]步骤2)中,在Spring框架中配置基本参数,使用配置类进行配置或者使用xml文件进行配置。
[0014]进一步的,
[0015]在步骤2)中配置的包扫描路径中新建切面类,在此切面类添加@Component注解,用来标注此类为一个Bean,在此类中定义一个切点方法,方法的参数返回值均为空,起到标记作用。
[0016]进一步的,
[0017]在切面类中定义增强方法,其中有5中增强方式:@Before,@After,@Around,@AfterReturning,@AfterThrowing,在入参的校验中在增强方法上加入@Before注解,这样的增强方法叫做前置增强方法。
[0018]在切面类中定义前置增强方法,添加@Before("**()")注解,括号中的参数为切点
方法名,在前置增强方法中增强JoinPoint入参,通过joinPoint.getArgs()方法取得参数列表,然后根据业务需求,进行相应的参数处理。
[0019]进一步的,
[0020]在步骤3)中定义的切点方法上加@Pointcut("**")注解,其中**中加入相应的表达式,在符合所配置的表达式的方法中加入增强的方法内容,
[0021]或使用自定义注解的方式实现,定义一个方法注解,然后在切点方法上加上@Pointcut("@annotation(**)"),annotation后的内容为注解的名称,所有有自定义注解的方法上都会被AOP增强。
[0022]本专利技术的有益效果是
[0023]本专利技术的应用使得在接口数量大的情况下,可以对相似的RESTful API快速完成统一的参数验证,这种方式配置灵活,易于修改,并且能够让参数验证与业务代码相解耦,提高整个系统的可维护性。
附图说明
[0024]图1是本专利技术的工作流程示意图。
具体实施方式
[0025]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]本专利技术的一种基于AOP的RESTful API统一参数校验方法,使用AOP技术在接口数量大的情况下,对相似的RESTful API进行统一的参数验证,包括以下步骤:
[0027]1.搭建Spring框架,包括但不限于Spring MVC、Spring Boot、Spring Cloud,使用Spring框架搭建Web项目,编写RESTful API。
[0028]2.在Spring框架中配置基本参数,可以使用配置类进行配置或者使用xml文件进行配置,需要配置包扫描的路径、开启AOP功能。
[0029]以Spring MVC项目xml配置方法为例:通过在xml中加入
[0030]<context:component-scan base-package="**.**.**"/>来配置包扫描路径,此项配置可以配置多个,要保证base-package中配置的路径中需要包含要进行参数验证的类和切面类要包含在内。通过加入<aop:aspectj-autoproxy/>来配置开启AOP。
[0031]3.定义参数验证切面类,在2中配置的包扫描路径中新建切面类,在此切面类添加@Component注解,用来标注此类为一个Bean,在此类中定义一个切点方法,方法的参数返回值均可为空,只起到标记作用。在切面类中可以定义增强方法,其中有5中增强方式。@Before,@After,@Around,@AfterReturning,@AfterThrowing,在入参的校验中一般在增强方法上加入@Before注解,这样的增强方法叫做前置增强方法。在切面类中定义前置增强方法,添加@Before("**()")注解,括号中的参数为切点方法名,在前置增强方法中增强JoinPoint入参,通过joinPoint.getArgs()方法取得参数列表,然后根据业务需求,进行相应的参数处理。
[0032]4.定义参数验证的覆盖范围,在3中定义的切点方法上需要加
[0033]@Pointcut("**")注解,其中**中可以加入相应的表达式,可以在符合所配置的表达式的方法中加入增强的方法内容,也可以使用自定义注解的方式实现,定义一个方法注解,然后在切点方法上加上@Pointcut("@annotation(**)"),annotation后的内容为注解的名称,所有有自定义注解的方法上都会被AOP增强。
[0034]技术用语:
[0035]AOP:Aspect Oriented Programming的缩写,意为面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。
[0036]RESTful:Representational State Transfer的缩写,一种网络应用程序的设计风本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于AOP的RESTful API统一参数校验方法,其特征在于,使用AOP技术对相似的RESTful API进行统一的参数验证,包括以下步骤:1)搭建Spring框架,使用Spring框架搭建Web项目,编写RESTful API;2)在Spring框架中配置包扫描的路径、开启AOP功能;3)定义参数验证切面类,进行具体参数验证处理;4)使用表达式,自定义注解定义参数验证的覆盖范围。2.根据权利要求1所述的方法,其特征在于,所述Spring框架包括Spring MVC、Spring Boot、Spring Cloud。3.根据权利要求1所述的方法,其特征在于,步骤2)中,在Spring框架中配置基本参数,使用配置类进行配置或者使用xml文件进行配置。4.根据权利要求1所述的方法,其特征在于,在步骤2)中配置的包扫描路径中新建切面类,在此切面类添加@Component注解,用来标注此类为一个Bean,在此类中定义一个切点方法,方法的参数返回值均为空,起到标记作用。5.根据权利要求4所述的方法,其特征在于,在切面类中定义增强方法,其中有...
【专利技术属性】
技术研发人员:姜浩楠,程林,杨培强,
申请(专利权)人:山东浪潮商用系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。