Spring攔截器HandlerInterceptor接口代碼解析
Spring的HandlerMapping支持?jǐn)r截器,攔截器必須實(shí)現(xiàn)HandlerInterceptor接口,此接口里面有下面3中方法:
1.preHandle()處理器執(zhí)行前被調(diào)用,方法返回true標(biāo)識(shí)繼續(xù)調(diào)用其他攔截器或者處理器,返回false表示中斷流程,后續(xù)的攔截器和處理器不再執(zhí)行。
2.postHandle()處理器執(zhí)行后,視圖執(zhí)行前調(diào)用,此時(shí)而已通過(guò)ModelAndView對(duì)象對(duì)數(shù)據(jù)模型數(shù)據(jù)進(jìn)行處理或?qū)σ晥D進(jìn)行處理。
3.afterCompletion()整個(gè)過(guò)程結(jié)束后調(diào)用,比如性能監(jiān)控中我們?cè)谶@里可以記錄結(jié)束時(shí)間并輸出消耗的時(shí)間,也可以在這里寫(xiě)對(duì)資源的清理,但是只有preHandle()返回true時(shí)才會(huì)執(zhí)行afterCompletion方法。
public class someInterceptor implements HandlerInterceptor{
public boolean preHandle(HttpServletRequest req,HttpServletResponse resp,Object handler)throws Exception{
//TODO 處理器執(zhí)行前被調(diào)用
return true;
}
publilc void postHandle(HttpServletRequest req,HttpServletResponse resp,Object handler,ModelAndView mv)throws Exception{
//TODO 處理器執(zhí)行后被調(diào)用
}
public void afterCompletion(HttpServletRequest req,HttpServletResponse resp,Object handler,Exception e)throws Exception{
//TODO全部執(zhí)行完成后調(diào)用
}
}
這個(gè)自定義的攔截器實(shí)現(xiàn)HandlerInterceptor接口就要實(shí)現(xiàn)接口里所有的方法,如果只想使用某一種方法,可以繼承HandlerInterceptorAdapter.
攔截器的配置
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/org/*"/> <mvc:exclude-mapping path="/login/*"/> <bean class="org.vipcpi.interceprot.someInterceptor"/> </mvc:interceptor> </mvc:interceptors>
總結(jié)
以上就是本文關(guān)于Spring攔截器HandlerInterceptor接口代碼解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Mybatis動(dòng)態(tài)調(diào)用表名和字段名的解決方法
今天在項(xiàng)目開(kāi)發(fā)中有個(gè)業(yè)務(wù)是需要限制各個(gè)用戶對(duì)某些表里的字段查詢以及某些字段是否顯示,這種情況下,就需要構(gòu)建sql來(lái)動(dòng)態(tài)傳入表名、字段名了,下面給大家介紹mybatis動(dòng)態(tài)調(diào)用表名和字段名的解決方法,一起看看吧2016-10-10
log4j2 RollingRandomAccessFile配置過(guò)程
這篇文章主要介紹了log4j2 RollingRandomAccessFile配置過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
使用springboot activiti關(guān)閉驗(yàn)證自動(dòng)部署方式
這篇文章主要介紹了使用springboot activiti關(guān)閉驗(yàn)證自動(dòng)部署方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringMVC Json自定義序列化和反序列化的操作方法
這篇文章主要介紹了SpringMVC Json自定義序列化和反序列化的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Javassist之一秒理解java動(dòng)態(tài)編程
概述Javassist是一款字節(jié)碼編輯工具,可以直接編輯和生成Java生成的字節(jié)碼,以達(dá)到對(duì).class文件進(jìn)行動(dòng)態(tài)修改的效果。2019-06-06
java異步編程CompletableFuture使用示例詳解
這篇文章主要為大家介紹了java異步編程CompletableFuture使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

