900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Spring Boot——自定义多个拦截器(HandlerInterceptor)配置方法与执行顺序

Spring Boot——自定义多个拦截器(HandlerInterceptor)配置方法与执行顺序

时间:2021-06-02 04:09:50

相关推荐

Spring Boot——自定义多个拦截器(HandlerInterceptor)配置方法与执行顺序

执行顺序

源代码

拦截器类

package com.jd.m.tg.interceptor;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.ponent;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@Componentpublic class HandlerInterceptor1 implements HandlerInterceptor {private static final Logger LOG= LoggerFactory.getLogger(MyInterceptor.class);@Overridepublic boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {LOG.info("执行拦截器的preHandle方法");return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {LOG.info("执行拦截器的postHandle方法");}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {LOG.info("执行拦截器的afterCompletion方法");}}

另一个拦截器类和该类内容一致;

拦截器配置类

package com.jd.m.tg.config;import com.jd.m.tg.interceptor.HandlerInterceptor1;import com.jd.m.tg.interceptor.HandlerInterceptor2;import lombok.AllArgsConstructor;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@Configuration@AllArgsConstructorpublic class InterceptorConfig extends WebMvcConfigurerAdapter{private MyInterceptor myInterceptor;private MyInterceptorTwo myInterceptorTwo;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(HandlerInterceptor1).addPathPatterns("/test/**");registry.addInterceptor(HandlerInterceptor2).addPathPatterns("/test/**");}}

SpringMVC配置方法:

<!--拦截器 --><mvc:interceptors><!--多个拦截器,顺序执行 --><mvc:interceptor><!-- /**表示所有url包括子url路径 --><mvc:mapping path="/**"/><bean class="cn.itcast.ssm.interceptor.HandlerInterceptor1"></bean></mvc:interceptor><mvc:interceptor><mvc:mapping path="/**"/><bean class="cn.itcast.ssm.interceptor.HandlerInterceptor2"></bean></mvc:interceptor></mvc:interceptors>

运行结果

com.jd.m.tg.interceptor.HandlerInterceptor2 : 执行拦截器的preHandle方法-12-19 11:18:50.237 INFO 8988 --- [0.0.1-80-exec-1] com.jd.m.tg.interceptor.HandlerInterceptor1 : 执行拦截器的preHandle方法-12-19 11:18:50.255 INFO 8988 --- [0.0.1-80-exec-1] com.jd.m.tg.interceptor.HandlerInterceptor1 : 执行拦截器的postHandle方法-12-19 11:18:50.255 INFO 8988 --- [0.0.1-80-exec-1] com.jd.m.tg.interceptor.HandlerInterceptor2 : 执行拦截器的postHandle方法-12-19 11:18:50.255 INFO 8988 --- [0.0.1-80-exec-1] com.jd.m.tg.interceptor.HandlerInterceptor1 : 执行拦截器的afterCompletion方法-12-19 11:18:50.255 INFO 8988 --- [0.0.1-80-exec-1] com.jd.m.tg.interceptor.HandlerInterceptor2 : 执行拦截器的afterCompletion方法

教学资源

/video/av47953244?p=45

参考文章

/u012834750/article/details/78840875

/u012401711/article/details/73741974

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。