publicclassApiRequestMappingHandlerMappingextendsRequestMappingHandlerMapping{@OverrideprotectedRequestCondition<?>getCustomTypeCondition(Class<?> handlerType){// 扫描类上的 @ApiVersionApiVersion apiVersion =AnnotationUtils.findAnnotation(handlerType,ApiVersion.class);returncreateRequestCondition(apiVersion);}@OverrideprotectedRequestCondition<?>getCustomMethodCondition(Method method){// 扫描方法上的 @ApiVersionApiVersion apiVersion =AnnotationUtils.findAnnotation(method,ApiVersion.class);returncreateRequestCondition(apiVersion);}/**
* 获取请求版本号
* @param apiVersion
* @return
*/privateRequestCondition<ApiVersionCondition>createRequestCondition(ApiVersion apiVersion){if(Objects.isNull(apiVersion)){returnnull;}String version = apiVersion.value().substring(1);int value =Integer.parseInt(apiVersion.value().substring(1));Assert.isTrue(value >=1,"Api Version Must be greater than or equal to 1");returnnewApiVersionCondition(version);}}