springboot(五).如何在springboot項目中使用攔截器


                                                                               

在每個項目中,攔截器都是我們經常會去使用的東西,基本上任一一個項目都缺不了攔截器的使用。

如日志記錄、登錄驗證,session驗證等,都需要攔截器來攔截URL請求,那springboot中的攔截器是如何去使用的呢,我們一起試試。

首先,我們去創建一個名為LoginInterceptor的攔截器,來過濾請求,我們創建的攔截器要去實現HandlerInterceptor接口,然后定義我們的方法

 

public class LoginInterceptor implements HandlerInterceptor {

    private static final Logger log = LoggerFactory.getLogger(LoginInterceptor.class);

    /**
     * 進入controller層之前攔截請求
     * @param httpServletRequest
     * @param httpServletResponse
     * @param o
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {

        log.info("---------------------開始進入請求地址攔截----------------------------");
        return true;

    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        log.info("--------------處理請求完成后視圖渲染之前的處理操作---------------");
    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        log.info("---------------視圖渲染之后的操作-------------------------0");
    }

}

 這里,我們不去寫過多的業務邏輯,只需要知道攔截器是否生效即可

接下來我們需要將LoginInterceptor攔截器添加到SpringBoot的配置中,讓SpringBoot項目有這么一個攔截器存在,我們新創建一個WebAppConfig,
將攔截器的配置以及攔截路徑配置好
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter{
    @Override
    public void addInterceptors(InterceptorRegistry registry){
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**");
    }
}

這個方法將我們之前寫好的登錄攔截器添加到了配置中去,接下來,我們去發送請求,觀察控制台

 

發現請求確實被攔截器攔截成功了,然后我們就可以根據業務需要去在攔截器中寫我們想要的方法了

 

 

 

 

 

 

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM