攔截器在Spring MVC中怎么實(shí)現(xiàn)自定義?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
1. 引言
攔截器(Interceptor)實(shí)現(xiàn)對(duì)每一個(gè)請(qǐng)求處理前后進(jìn)行相關(guān)的業(yè)務(wù)處理,類似于Servlet的Filter。
我們可以讓普通的Bean實(shí)現(xiàn)HandlerIntercpetor接口或繼承HandlerInterceptorAdapter類來(lái)實(shí)現(xiàn)自定義攔截器。
通過(guò)重寫(xiě)WebMvcConfigurerAdapter的addIntercetors方法來(lái)注冊(cè)一個(gè)計(jì)算每一次請(qǐng)求的處理時(shí)間的攔截器。
2. 自定義攔截器的實(shí)現(xiàn)
2.1 定義攔截器
新建LogInterceptor類,并繼承HandlerInterceptorAdapter類,重寫(xiě)preHandle、postHandle這兩個(gè)方法。
1.preHandle方法表示在請(qǐng)求發(fā)生前執(zhí)行,內(nèi)容如下:
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { request.setAttribute("begin", System.currentTimeMillis()); return true; }