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í)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud微服務(wù)之Hystrix組件實現(xiàn)服務(wù)熔斷的方法
微服務(wù)架構(gòu)特點就是多服務(wù),多數(shù)據(jù)源,支撐系統(tǒng)應(yīng)用。這樣導(dǎo)致微服務(wù)之間存在依賴關(guān)系。這篇文章主要介紹了SpringCloud微服務(wù)之Hystrix組件實現(xiàn)服務(wù)熔斷的方法,需要的朋友可以參考下2019-08-08Jackson將json string轉(zhuǎn)為Object,org.json讀取json數(shù)組的實例
下面小編就為大家?guī)硪黄狫ackson將json string轉(zhuǎn)為Object,org.json讀取json數(shù)組的實例,具有很好的參考價值,希望對大家有所幫助2017-12-12Java8新特性之接口中的默認(rèn)方法和靜態(tài)方法詳解
今天帶大家學(xué)習(xí)的是Java8新特性的相關(guān)知識,文章圍繞著Java接口中的默認(rèn)方法和靜態(tài)方法展開,文中有非常詳細(xì)的的代碼示例,需要的朋友可以參考下2021-06-06IDEA使用學(xué)生郵箱無法注冊問題:JetBrains Account connection error: 拒絕連接
這篇文章主要介紹了IDEA使用學(xué)生郵箱無法注冊問題:JetBrains Account connection error: 拒絕連接,文中通過圖文及示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07SpringBoot請求發(fā)送與信息響應(yīng)匹配實現(xiàn)方法介紹
這篇文章主要介紹了SpringBoot請求發(fā)送與信息響應(yīng)匹配實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10