Spring Boot攔截器實現步驟及測試例項
阿新 • • 發佈:2020-04-10
第一步,定義攔截器:
package com.zl.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("preHandle"); return true; } @Override public void postHandle(HttpServletRequest request,Object handler,ModelAndView modelAndView) throws Exception { System.out.println("preHandle"); } @Override public void afterCompletion(HttpServletRequest request,Exception ex) throws Exception { System.out.println("preHandle"); } }
控制檯列印三個輸出語句,作為測試。
第二步:配置攔截器
package com.zl.interceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebMVCConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(myInterceptor()).addPathPatterns("/**"); } @Bean myInterceptor myInterceptor(){ return new myInterceptor(); } }
將定義的攔截器注入到這個配置方法中,並攔截所有路徑。
第三步:寫個介面測試
package com.zl.interceptor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class helloController { @GetMapping("/hello") public String hello(){ return "hello"; } }
測試結果
定義的攔截器三個方法都執行了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。