美文网首页
SpringBoot 2.1.X 接口多版本控制

SpringBoot 2.1.X 接口多版本控制

作者: 地支锅 | 来源:发表于2019-10-14 18:17 被阅读0次

原理

借鉴网上的相关方法,但在实际应用中存在很多问题,例如扩展WebMvcConfigurationSupport会导致很多默认组件失效,重写WebMvcRegistrations类getRequestMappingHandlerMapping方法不生效。
在阅读WebMvcAutoConfiguration源代码后,扩展 WebMvcAutoConfiguration.EnableWebMvcConfiguration 可以生效。

关键代码

  1. 关键代码结构:


    image.png
  2. 版本注解


    image.png
  3. 实现RequestCondition,根据版本号选择匹配的Handler


    image.png
  4. 实现RequestMappingHandlerMapping,读取controller类及方法上的注解创建对应的ApiVersionCondition


    image.png
  5. 扩展WebMvcAutoConfiguration.EnableWebMvcConfiguration, 重写createRequestMappingHandlerMapping方法


    image.png
  6. 编写测试控制器类


    image.png
image.png image.png
  1. Postman测试接口
image.png image.png

其它方法

可以参考https://dzone.com/articles/versioning-restful-services-with-spring-boot 在Header中指定版本。

参考

  1. https://blog.csdn.net/u010782227/article/details/74905404
  2. https://www.jianshu.com/p/1389fdf20ee2
  3. https://dzone.com/articles/versioning-restful-services-with-spring-boot

相关文章

网友评论

      本文标题:SpringBoot 2.1.X 接口多版本控制

      本文链接:https://www.haomeiwen.com/subject/ggxdmctx.html