springboot创建拦截器interceptor
springboot创建自定义拦截器
在springboot中创建拦截器很方便,首先创建自定义拦截器,自定义拦截器需要实现HandlerInterceptor接口,然后根据自己的需求去重写相应的方法。
下面例子自定义两个拦截器,TestInterceptor1和TestInterceptor2
package com.test.demo.interceptor; import lombok.extern.slf4j.Slf4j; import org.springframework.lang.Nullable; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 自定义拦截器TestInterceptor */ @Slf4j public class TestInterceptor1 implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { log.info("======TestInterceptor1 preHandle, 调用controller之前======"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { log.info("======TestInterceptor1 postHandle, 调用controller之后======"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { log.info("=======TestInterceptor1 afterCompletion, 视图渲染之后======="); } }
package com.test.demo.interceptor; import lombok.extern.slf4j.Slf4j; import org.springframework.lang.Nullable; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 自定义拦截器TestInterceptor */ @Slf4j public class TestInterceptor2 implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { log.info("======TestInterceptor2 preHandle, 调用controller之前======"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { log.info("======TestInterceptor2 postHandle, 调用controller之后======"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { log.info("=======TestInterceptor2 afterCompletion, 视图渲染之后======="); } }
然后注册该拦截器即可
启动项目,该拦截器即生效