本申请公开了Web应用版本管理系统、方法及相应计算机设备和存储介质,其中所述系统用于:自定义版本注解;基于所述版本注解使用条件匹配器生成SpringBoot或Spring的请求映射匹配器的映射表;将所述映射表加载到系统中;基于请求中的版本信息按照版本匹配规则生成映射信息;将所述映射信息与所述映射表进行匹配;响应于所述映射信息与所述映射表匹配成功,调用对应的控制器,控制器接受并进行处理请求。本发明专利技术使能解决SpringBoot web系统对外提供多版本服务时的多版本兼容问题。提供多版本服务时的多版本兼容问题。提供多版本服务时的多版本兼容问题。
【技术实现步骤摘要】
Web应用版本管理系统、方法及相应计算机设备和存储介质
[0001]本申请涉及电数字数据处理领域,尤其涉及Web应用版本管理系统。本申5请还涉及Web应用版本管理方法及相应计算机设备和计算机可读存储介质。
技术介绍
[0002]Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心0特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面
[0003]向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化Spring应
[0004]用的整个搭建和开发过程。另外,SpringBoot通过集成大量的框架使得依赖包5的版本冲突,以及引用的不稳定性等问题得到了很好地解决。
[0005]当前SpringBoot架构下的Web应用系统非常多,随着业务的迭代变更升级,版本兼容的问题尤为突出,在满足现有业务版本的情况下还要维护历史版本的正常运行,这就涉及到系统兼容性问题,系统需要针对不同的版本服务冗
[0006]余不同的代码,随着业务版本的迭代变更,代码开始膨胀起来,系统的一些历0史服务代码需要停止更新并进行清理,由于历史代码堆积太多,辨析哪些代码
[0007]需要清理变得非常谨慎也非常困难。
技术实现思路
[0008]本专利技术提供一种Web应用版本管理系统、方法及相应计算机设备和存储介5质,其解决SpringBoot web系统对外提供多版本服务时的多版本兼容问题。
[0009]另一方面,本专利技术的目标在于解决代码膨胀的问题。
[0010]在本专利技术的第一方面,提供一种Web应用版本管理系统,该系统包括:
[0011]版本注解自定义模块,用于自定义版本注解;
[0012]请求映射匹配器自定义模块,用于基于所述版本注解使用条件匹配器生成SpringBoot或Spring的请求映射匹配器的映射表;
[0013]映射表加载模块,用于将所述映射表加载到系统中;
[0014]条件匹配器自定义模块,用于基于请求中的版本信息按照版本匹配规则生成映射信息;
[0015]映射表匹配模块,用于将所述映射信息与所述映射表进行匹配;
[0016]控制器模块,用于响应于所述映射信息与所述映射表匹配成功,调用对应的控制器,控制器接受并进行处理请求。
[0017]在本专利技术的第二方面,提供一种Web应用版本管理方法,该方法包括:
[0018]自定义版本注解;
[0019]基于所述版本注解使用条件匹配器生成SpringBoot或Spring的请求映射匹配器的映射表;
[0020]将所述映射表加载到系统中;
[0021]基于请求中的版本信息按照版本匹配规则生成映射信息;
[0022]将所述映射信息与所述映射表进行匹配;
[0023]响应于所述映射信息与所述映射表匹配成功,调用对应的控制器,控制器接受并进行处理请求。
[0024]在本专利技术的第三方面,提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现根据本专利技术的第一方面的系统的功能或者实现根据本专利技术的第二方面的方法的步骤。
[0025]根据本专利技术的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据本专利技术的第一方面的系统的功能或者实现根据本专利技术的第二方面的方法的步骤。
[0026]按照本专利技术,通过自定义版本注解,基于所述版本注解使用条件匹配器生成SpringBoot或Spring的请求映射匹配器的映射表,将所述映射表加载到系统中,基于请求中的版本信息按照版本匹配规则生成映射信息,将所述映射信息与所述映射表进行匹配,匹配成功时调用对应的控制器,控制器接受并进行处理请求,可在请求转发过程中通过对应版本匹配规则改变请求映射条件来实现请求版本和目标版本代码精准定位和执行,从而实现一套系统提供多版本的服务,解决SpringBoot web系统对外提供多版本服务时的多版本兼容问题。
[0027]结合附图阅读本专利技术实施方式的详细描述后,本专利技术的其它特点和优点将变得更加清楚。
附图说明
[0028]图1为根据本专利技术系统的一实施例的框图;
[0029]图2为根据本专利技术方法的一实施例的流程图。
[0030]为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本专利技术所必要的细节,而省略其他细节。
具体实施方式
[0031]下面参照附图对本专利技术的实施方式和实施例进行详细说明。
[0032]通过下面给出的详细描述,本专利技术的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本专利技术优选实施例的同时,它们仅为说明目的给出。
[0033]在本说明书中,Web应用指基于SpringBoot或Spring的Web应用。
[0034]图1示出了根据本专利技术的Web应用版本管理系统的一优选实施例的框图。在该实施例中,Web应用版本管理系统包括版本注解自定义模块102、请求映射匹配器自定义模块104、映射表加载模块106、条件匹配器自定义模块108、映射表匹配模块110和控制器模块112。
[0035]版本注解自定义模块102用于通过JDK的注解@interface定义版本注解类,@
Target定义注解的作用范围。
[0036]请求映射匹配器自定义模块104用于基于版本注解使用条件匹配器生成SpringBoot或Spring的请求映射匹配器的映射表。具体地,通过继承SpringBoot或Spring的RequestMappingHandkerMapping类覆盖getCustomMethodCondition方法自定义请求映射匹配器,即通过注解技术获取控制器中每个方法上的注解标注中的版本信息,将获取的版本信息作为条件匹配器的参数生成SpringBoot或Spring内部映射表信息RequestMappingInfo。映射表例示如下:
[0037]s.w.s.m.m.a.RequestMappingHandlerMapping:
[0038]c.z.q.w.c.BoardController:
[0039]{/board/add/1.0}:add(Board)
[0040]{/board/add/2.0}:add(Board)
[0041]{/board/update/1.0}:update(Board)
[0042]{/board/update/2.0}:update(Board)
[0043]{/board/saveList/1.0本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种Web应用版本管理系统,其特征在于,所述系统包括:版本注解自定义模块,用于自定义版本注解;请求映射匹配器自定义模块,用于基于所述版本注解使用条件匹配器生成SpringBoot或Spring的请求映射匹配器的映射表;映射表加载模块,用于将所述映射表加载到系统中;条件匹配器自定义模块,用于基于请求中的版本信息按照版本匹配规则生成映射信息;映射表匹配模块,用于将所述映射信息与所述映射表进行匹配;控制器模块,用于响应于所述映射信息与所述映射表匹配成功,调用对应的控制器,控制器接受并进行处理请求。2.根据权利要求1所述的系统,其特征在于,所述系统还包括:版本匹配范围确定模块,用于确定版本匹配规则覆盖的版本范围;膨胀代码删除模块,用于删除控制器中版本注解值不在所述版本范围的代码。3.根据权利要求1所述的系统,其特征在于,所述版本注解自定义模块用于通过JDK的注解@interface定义版本注解类以及@Target定义注解的作用范围。4.根据权利要求1所述的系统,其特征在于,所述请求映射匹配器自定义模块用于通过继承SpringBoot或Spring的RequestMappingHandkerMapping类覆盖getCustomMethodCondition方法自定义请求映射匹配器。5.根据权利要求4所述的系统,其特征在于,所述请求映射匹配器自定义模块用于获取控制器中每个方法上的注解标注中的版本信息,将获取的版本信息作为条件匹配器的参数生成SpringBoot或Spring内部映射表RequestMappingInfo。6.根据权利要求1所...
【专利技术属性】
技术研发人员:赵利锋,
申请(专利权)人:望海康信北京科技股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。