个人博客纯净版
在我们的日常开发中,需求总是变化的。对于某个接口,随着需求的升级,也面临里面逻辑的变化。例如,对于/v1/hello,/v2/hello 两个请求,若存在相应的映射,则对应入座。否则都映射到最新的接口上。则映射到最新的接口上。此时,我们又想保持以前的接口还保留,那么我们此时需要做的事,把对接口的请求都映射到最新的接口上,而原来的接口请求还是映射原来的接口上。我在这里介绍用自定义注解的形式,在@RequestMapping()的映射原理上做文章。
1.定义版本注解
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface ApiVersion {
int value();
}
2.自定义HandlerMapping
public class CustomRequestMappingHandlerMapping extends RequestMappi