关于ConcurrencyApplication的addInterceptors

来源:5-3 线程封闭

旺仔奶牛糖

2019-01-05

图片描述

图片描述
我打印了程序执行的过程,但是对于addInterceptors这个方法的作用没有明白。添加拦截器到spring-boot中。虽然说是这样。但是registry.addInterceptor(new HttpInterceptor()).addPathPatterns("/**");这一句代码究竟在做什么,还是没有明白。
另外如果想要添加多个过滤器,就是仿照上面的httpFilter()的方法,多写几个就可以了么?
拦截器是整个项目只要有一个就行了么?还是说,也会多写几个,如果这样的话。在dofilter的调用里,进入拦截器的位置和作用和顺序会是怎么样呢?因为诚如我看到的执行顺序,在dofilter里面我们没有调用过HttpInterceptor,是系统自己调用的,如果有多个拦截器,会怎么样呢?会支持这种情况吗?

写回答

1回答

Jimin

2019-01-05

你好,这里的拦截器和过滤器和springmvc里的拦截器和过滤器是相同的,只是不少同学之前springmvc用习惯了他们,而springboot里不再使用xml配置,我这里演示了一下如何配置。
看你提的问题,猜测你可能没用过,建议你可以多查一些资料加深一下理解。拦截器和过滤器对于提供http接口的应用很重要,原因在于他们可以拦截系统收到的请求,在请求前后做一些事情,比如添加监控、准备数据、验证身份、记录日志等等,相当于根据请求的url拦截指定接口,并且在切面里完成一些通用的工作,这样很多相似的逻辑就不需要在每个接口里去实现了,比如很多接口要验证登录。
同时,框架是允许配置多个拦截器和过滤器,但我们通常不会配置多个,配置多了接口的逻辑会变得复杂,不便于维护,目前我参与过的系统中,基本上都最多配置一个拦截器,但个别系统配置过多个过滤器,配置多个过滤器的需要注意配置顺序。

0
8
旺仔奶牛糖
回复
Jimin
好的!谢谢老师!
2019-01-16
共8条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程