Interceptors are moving to intercept the object Action calls. It provides a mechanism that enables developers to define an action performed before or after the code execution, which may also prevent an action performed before execution, but also provided a way to extract the action part reusable. In AOP (Aspect-Oriented Programming) prior interceptor for a method or field is accessed, and the intercept is added before or after certain operations.
How to add interceptors in spring boot in?
1. First, realize his interceptor
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyInterceptor implements HandlerInterceptor{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("preHandler"); return true;//这里一定要返回true要不然后面的不会执行 } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("postHandler"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterHandler"); } }
2. WebMvcConfigurer implement the interface and override the method addInterceptors
@Configuration public class WebMvcConfig the implements WebMvcConfigurer { @Override public void addInterceptors (InterceptorRegistry Registry) { registry.addInterceptor (myInterceptor ()) addPathPatterns (. "/ **" ); // own interceptor registered to the spring and add intercept path } @Bean myInterceptor myInterceptor () { return new new myInterceptor (); // provide their own interceptor the bean } }
3. Create a test controller
@RestController
public class HelloController {
@GetMapping("gethello")
public String getHello(){
System.out.println("get hello");
return "get hello";
}
}
4. Test results