害虫
hi,bug....

  最近搞了一个基于SSM框架的项目,项目上线了,我也开始对框架进行一些改进工作,其中一项就是给springmvc框架下的RESTFul API添加版本控制,在这里记录一下我的实现思路以及性能调优过程。

 

  我使用的是spring-3.2.16版本,也是spring3的最后一个版本。

  我想要达到的版本控制效果如下:

  1.api版本定义在url中,采用${base}/api/v4/..的形式。

  2.api版本号通过注解进行定义。

  3.如果请求中不指定api版本号则返回最新版本。

  4.版本的自动适配,如果请求的api版本不存在,则返回低于请求版本的最新版本

 

  用过spingMVC的朋友都知道,你在controller中定义的方法,想要对外发布成api,用@RequestMapping这个注解就可以了,springMVC在系统启动时,扫描到注解后会将方法和我们定义的URI形成映射(见下图),当外部请求来的时候,通过一系列规则的匹配、校验,最终找到想要访问的方法或者返回空结果(貌似是句废话),这里为了实现上面的效果1,需要将版本信息发布到方法的URI上。

 

  springMVC的设计思想我比较了解,但是对于这个版本管理的需求一时不知道该从何下手,首先当然在网上搜一下已有的解决方案。然后还真的有相关的解决方案。

 

未完待续。

 

 

时隔4、5个月,思路已经忘却,已将代码开源至git.oschina。地址奉上:

http://git.oschina.net/hibug/SpringMVCZhiBanBenKongZhi

 

posted on 2017-03-28 14:00  Hi,虫  阅读(3542)  评论(8编辑  收藏  举报