SpringBoot怎么使用Interceptor拦截器


这篇文章主要讲解了“SpringBoot怎么使用Interceptor拦截器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么使用Interceptor拦截器”吧!在springboot中使用拦截器也比较简单,实现HandlerInterceptor或者AsyncHandlerInterceptor接口,再从配置里添加一下拦截器就完成了;AsyncHandlerInterceptor接口继承了HandlerInterceptor,多了一个afterConcurrentHandlingStarted方法:接口里的方法:preHandle:在Controller之前执行,可以判断参数,执行的controller方法等,返回值为boolean,返回true继续往下运行(下面的拦截器和controller),否则开始返回操作(执行之前的拦截器返回等操作);postHandle:在Controller之后,视图返回前执行,可对ModelAndView进行处理再返回;afterCompletion:请求完成后执行;afterConcurrentHandlingStarted:controller返回值是java.util.concurrent.Callable时才会调用该方法并使用新线程运行;方法执行顺序有两种:preHandle -> 执行Controller -> postHandle -> afterCompletion;preHandle -> 执行Controller -> afterConcurrentHandlingStarted -> callable线程执行call()方法 -> 新线程开始preHandle -> postHandle -> afterCompletion;(controller方法返回Callable对象时)配置拦截器:实现WebMvcConfigurer接口里的addInterceptors方法,使用参数InterceptorRegistry对象添加自己的拦截器,可以添加指定拦截路径或者去掉某些过滤路径,还可以设置拦截器的优先级order,优先级由小到大,默认0;多个拦截器的执行顺序:preHandle方法按照order由小到大顺序,执行完controller后,其他方法则反向顺序,跟过滤器Filter类似;测试启动类,默认配置:controller类:两个自定义拦截器1和2:配置拦截器:发送一个post测试请求:http://192.168.1.30:8080/interceptor/a?s=hello,拦截器2的order默认0,拦截器1的order为1,preHandle先执行2的,controller执行之后,剩下的Handle都是先执行1再执行2的;发送preHandle返回false的请求:http://192.168.1.30:8080/interceptor/a?s=hello123456789,拦截器1的preHandle返回false后,直接执行2的afterCompletion;发送测试callable的请求:http://192.168.1.30:8080/interceptor/b?s=hello,拦截路径配置跳过拦截器1只执行拦截器2,通过threadid可以看到前后使用的是两个线程;感谢各位的阅读,以上就是“SpringBoot怎么使用Interceptor拦截器”的内容了,经过本文的免费云主机域名学习后,相信大家对SpringBoot怎么使用Interceptor拦截器这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: Flask URL传参与视图映射如何实现

本篇内容主要讲解“FlaskURL传参与视图映射如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Fl免费云主机域名askURL传参与视图映射如何实现”吧!url与视图函数的映射是通过@app.route()装…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/29 18:06
Next 05/29 18:06

相关推荐