springboot 攔截器Interceptor 實現

1.編寫攔截器

    implements HandlerInterceptor


public class AuthorityInterceptor implements HandlerInterceptor {

    /*
    進入Controller層之前調用;
    返回值爲true,調用Controller層的方法;
    返回值爲false,不再進入Controller層,重寫response,返回到頁面。
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        
        log.info("preHandle");

        
        return true;
    }

    //Controller層處理完成之後調用,與preHandle方法相對應
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        log.info("postHandle");
    }

    /*
    所有請求處理完成之後調用。
    例如:前後端不分離的項目,當ModelAndView返回到前端頁面並展示出來之後,才調用此方法
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        log.info("afterCompletion");
    }
}

2,註冊

@Configuration
implements WebMvcConfigurer 
.addPathPatterns("/manage/**")
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new AuthorityInterceptor()).addPathPatterns("/manage/**");
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章