本申请涉及电数字数据处理领域,尤其涉及web应用版本管理系统。本申5请还涉及web应用版本管理方法及相应计算机设备和计算机可读存储介质。
背景技术:
1、spring框架是java平台上的一种开源应用框架,提供具有控制反转特性的容器。spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心0特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面
2、向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的web框架方便开发等等。springboot基于spring4.0设计,不仅继承了spring框架原有的优秀特性,而且还通过简化配置来进一步简化spring应
3、用的整个搭建和开发过程。另外,springboot通过集成大量的框架使得依赖包5的版本冲突,以及引用的不稳定性等问题得到了很好地解决。
4、当前springboot架构下的web应用系统非常多,随着业务的迭代变更升级,版本兼容的问题尤为突出,在满足现有业务版本的情况下还要维护历史版本的正常运行,这就涉及到系统兼容性问题,系统需要针对不同的版本服务冗
5、余不同的代码,随着业务版本的迭代变更,代码开始膨胀起来,系统的一些历0史服务代码需要停止更新并进行清理,由于历史代码堆积太多,辨析哪些代码
6、需要清理变得非常谨慎也非常困难。
技术实现思路
1、本发明提供一种web应用版本管理系统、方法及相应计算机设备和存储介5质,其解决springboot web系统对外提供多版本服务时的多版本兼容问题。
2、另一方面,本发明的目标在于解决代码膨胀的问题。
3、在本发明的第一方面,提供一种web应用版本管理系统,该系统包括:
4、版本注解自定义模块,用于自定义版本注解;
5、请求映射匹配器自定义模块,用于基于所述版本注解使用条件匹配器生成springboot或spring的请求映射匹配器的映射表;
6、映射表加载模块,用于将所述映射表加载到系统中;
7、条件匹配器自定义模块,用于基于请求中的版本信息按照版本匹配规则生成映射信息;
8、映射表匹配模块,用于将所述映射信息与所述映射表进行匹配;
9、控制器模块,用于响应于所述映射信息与所述映射表匹配成功,调用对应的控制器,控制器接受并进行处理请求。
10、在本发明的第二方面,提供一种web应用版本管理方法,该方法包括:
11、自定义版本注解;
12、基于所述版本注解使用条件匹配器生成springboot或spring的请求映射匹配器的映射表;
13、将所述映射表加载到系统中;
14、基于请求中的版本信息按照版本匹配规则生成映射信息;
15、将所述映射信息与所述映射表进行匹配;
16、响应于所述映射信息与所述映射表匹配成功,调用对应的控制器,控制器接受并进行处理请求。
17、在本发明的第三方面,提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现根据本发明的第一方面的系统的功能或者实现根据本发明的第二方面的方法的步骤。
18、根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据本发明的第一方面的系统的功能或者实现根据本发明的第二方面的方法的步骤。
19、按照本发明,通过自定义版本注解,基于所述版本注解使用条件匹配器生成springboot或spring的请求映射匹配器的映射表,将所述映射表加载到系统中,基于请求中的版本信息按照版本匹配规则生成映射信息,将所述映射信息与所述映射表进行匹配,匹配成功时调用对应的控制器,控制器接受并进行处理请求,可在请求转发过程中通过对应版本匹配规则改变请求映射条件来实现请求版本和目标版本代码精准定位和执行,从而实现一套系统提供多版本的服务,解决springboot web系统对外提供多版本服务时的多版本兼容问题。
20、结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。
1.一种web应用版本管理系统,其特征在于,所述系统包括:
2.根据权利要求1所述的系统,其特征在于,所述系统还包括:
3.根据权利要求1所述的系统,其特征在于,所述版本注解自定义模块用于通过jdk的注解@interface定义版本注解类以及@target定义注解的作用范围。
4.根据权利要求1所述的系统,其特征在于,所述请求映射匹配器自定义模块用于通过继承springboot或spring的requestmappinghandkermapping类覆盖getcustommethodcondition方法自定义请求映射匹配器。
5.根据权利要求4所述的系统,其特征在于,所述请求映射匹配器自定义模块用于获取控制器中每个方法上的注解标注中的版本信息,将获取的版本信息作为条件匹配器的参数生成springboot或spring内部映射表requestmappinginfo。
6.根据权利要求1所述的系统,其特征在于,所述条件匹配器自定义模块用于通过实现springboot或spring的requestcondition接口的getmatchingcondition和compareto接口方法而自定义条件匹配器。
7.根据权利要求6所述的系统,其特征在于,接口方法getmatchingcondition按照版本匹配规则检查当前请求匹配条件和指定请求是否匹配,响应于不匹配,返回null,不产生新的请求匹配条件;响应于匹配,生成一个新的请求匹配条件,该新的请求匹配条件是当前请求的请求头参数版本值和指定请求的请求头参数版本是否匹配。
8.一种web应用版本管理方法,其特征在于,所述方法包括:
9.一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现根据权利要求1-7任一所述的系统的功能或者实现根据权利要求8所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1-7任一所述的系统的功能或者实现根据权利要求8所述的方法的步骤。