可根據須要實現三個方法中的一個或多個 git
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion");
}
}
複製代碼
@RestController
public class TestController {
@GetMapping(value = "/hello")
public String hello() {
System.out.println("hello controller");
return "hello world";
}
@GetMapping(value = "/test")
public String test()
{
System.out.println("test controller");
return "this is test";
}
}
複製代碼
實現接口方法addInterceptors,registry.addInterceptor是添加一個攔截器,addPathPatterns()是添加要攔截的路徑,excludePathPatterns是添加不攔截的路徑spring
@Configuration
public class MyConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加攔截器
InterceptorRegistration interceptorRegistration = registry.addInterceptor(new MyInterceptor());
//
interceptorRegistration.addPathPatterns("/**")
.excludePathPatterns("/test");
}
}
複製代碼
瀏覽器訪問 http://localhost:8080/hello ,控制檯輸出瀏覽器
碼雲代碼springboot