原理
借鉴网上的相关方法,但在实际应用中存在很多问题,例如扩展WebMvcConfigurationSupport会导致很多默认组件失效,重写WebMvcRegistrations类getRequestMappingHandlerMapping方法不生效。
在阅读WebMvcAutoConfiguration源代码后,扩展 WebMvcAutoConfiguration.EnableWebMvcConfiguration 可以生效。
关键代码
-
关键代码结构:
image.png -
版本注解
image.png -
实现RequestCondition,根据版本号选择匹配的Handler
image.png -
实现RequestMappingHandlerMapping,读取controller类及方法上的注解创建对应的ApiVersionCondition
image.png -
扩展WebMvcAutoConfiguration.EnableWebMvcConfiguration, 重写createRequestMappingHandlerMapping方法
image.png -
编写测试控制器类
image.png
- Postman测试接口
其它方法
可以参考https://dzone.com/articles/versioning-restful-services-with-spring-boot 在Header中指定版本。
网友评论