美文网首页
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