Spring HandlerInterceptor實現(xiàn)原理代碼解析
HandlerInterceptor 在這里看到這個HandlerExecutionChain對interceptor的調(diào)用,在這里深入看一下。
HandlerExecutionChain 就是一個類,綁定了Handler( 對應(yīng)的Controller) 和 Interceptors , 所以作用就是對Controller前后執(zhí)行interceptors, 類似Filter
幾個問題:
1. interceptor調(diào)用位置?

1 2 3 對應(yīng)調(diào)用 handlerInterceptor preHandle, postHandle, afterCompletion
先看第一行的:

進(jìn)到對應(yīng)的interceptor實現(xiàn)類,preHandler返回true, 如果返回false, 就會到DispatcherServlet就直接return了。

看第二行沒有特別的:

由于它只重寫了preHandle

所以走到它父類的postHandle了。方法是空的。

第三行和第二行一樣不贅述了。
以上就是執(zhí)行位置。
所以如果實現(xiàn)HandlerInterceptor , preHandle 應(yīng)該返回true, 具體要攔截的內(nèi)容寫在return true之前就行。 postHandle和afterCompletion 都是void方法,直接在里面寫需要攔截的內(nèi)容。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. php使用正則驗證密碼字段的復(fù)雜強度原理詳細(xì)講解 原創(chuàng)2. ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗分享3. Jsp中request的3個基礎(chǔ)實踐4. 淺談由position屬性引申的css進(jìn)階討論5. JSP+Servlet實現(xiàn)文件上傳到服務(wù)器功能6. vue前端RSA加密java后端解密的方法實現(xiàn)7. 利用CSS3新特性創(chuàng)建透明邊框三角8. 解析原生JS getComputedStyle9. ASP中實現(xiàn)字符部位類似.NET里String對象的PadLeft和PadRight函數(shù)10. CSS可以做的幾個令你嘆為觀止的實例分享

網(wǎng)公網(wǎng)安備