来自以下网址参考
https://www.cnblogs.com/baoyi/p/springboot_HandlerMethodArgumentResolver.html
https://blog.csdn.net/itdragons/article/details/89466750
springboot项目中在所有的controller方法中想增加token验证,即所有的方法都必须登陆有token之后才能访问。springboot封装了SpringMVC中的HandlerMethodArgumentResolver接口,通过实现HandlerMethodArgumentResolver这个接口可以达到需求。具体操作如下:
1. 新建了一个类 实现HandlerMethodArgumentResolver接口
2. 自定义一个注解,后面的所有方法用这个注解。
3. 新建一个webconfig 实现 WebMvcConfigurer 接口, 需要重写 addArgumentResolvers 这个方法,初始化我们创建的操作类
4. 新建一个测试类
NativeWebRequest 获取URL参数
@GetMapping("{id}")
@ResponseBody
public String info(@PathVariable("id") String id){
return id;
}
String id = ((Map<String, String>) nativeWebRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST)).get("id");
在这个测试类中,就可以取到我们写的拦截方法中的值。