目錄
目的
實(shí)現(xiàn)過程
????????1、創(chuàng)建攔截器
????????2、注冊(cè)攔截器
完整代碼
目的
? ? ? ? 在Springboot項(xiàng)目中創(chuàng)建攔截器,在進(jìn)入Controller層之前攔截請(qǐng)求,可對(duì)攔截到的請(qǐng)求內(nèi)容做響應(yīng)處理,如:校驗(yàn)請(qǐng)求參數(shù)、驗(yàn)證證書等操作;
實(shí)現(xiàn)過程
????????1、創(chuàng)建攔截器
????????首先自定義創(chuàng)建一個(gè)類,然后使用該類實(shí)現(xiàn)HandlerInterceptor接口并實(shí)現(xiàn)接口中的preHandle、postHandle、afterCompletion方法;結(jié)構(gòu)如下圖所示:
?????HandlerInterceptor接口中的方法作用和使用場(chǎng)景:
-
preHandle() 方法:
- 作用:在請(qǐng)求處理之前執(zhí)行的方法。可以進(jìn)行一些前置處理邏輯,例如權(quán)限驗(yàn)證、日志記錄等。
- 使用場(chǎng)景:適用于需要在請(qǐng)求處理之前進(jìn)行攔截和處理的場(chǎng)景,例如身份驗(yàn)證、請(qǐng)求參數(shù)校驗(yàn)等。
-
postHandle() 方法:
- 作用:在請(qǐng)求處理之后執(zhí)行的方法??梢詫?duì)處理結(jié)果進(jìn)行一些后置處理,例如添加返回結(jié)果信息、記錄請(qǐng)求執(zhí)行時(shí)間等。
- 使用場(chǎng)景:適用于需要在請(qǐng)求處理之后進(jìn)行攔截和處理的場(chǎng)景,例如添加公共返回信息、請(qǐng)求結(jié)果統(tǒng)計(jì)等。
-
afterCompletion() 方法:
- 作用:在請(qǐng)求完成后執(zhí)行的方法。無論請(qǐng)求成功與否,都會(huì)執(zhí)行該方法??梢赃M(jìn)行資源釋放和清理操作。
- 使用場(chǎng)景:適用于需要在請(qǐng)求完成后進(jìn)行資源釋放和清理的場(chǎng)景,例如關(guān)閉數(shù)據(jù)庫連接、釋放文件資源等。
- 鑒權(quán)攔截:在 preHandle() 方法中進(jìn)行用戶身份驗(yàn)證,根據(jù)驗(yàn)證結(jié)果決定是否放行請(qǐng)求。
- 日志記錄:在 postHandle() 方法中記錄請(qǐng)求的處理結(jié)果和執(zhí)行時(shí)間,用于統(tǒng)計(jì)和分析。
- 資源釋放:在 afterCompletion() 方法中釋放數(shù)據(jù)庫連接、關(guān)閉文件資源,確保資源的正確釋放。
????????
????????2、注冊(cè)攔截器
? ? ? ? ? ? ? ? 自定義創(chuàng)建一個(gè)類,然后使用該類實(shí)現(xiàn)WebMvcConfigurer接口并實(shí)現(xiàn)接口中的addInterceptors防范;結(jié)構(gòu)如下圖所示:
? ? ? ? addInterceptor():將需要注冊(cè)的攔截器放在該方法中;
? ? ? ? addPathPatterns():將需要被攔截的請(qǐng)求配置在該方法中,存在多個(gè)時(shí)可使用逗號(hào)間隔;
? ? ? ? excludePathPatterns():將需要放行的請(qǐng)求配置在該方法中,存在多個(gè)時(shí)可使用逗號(hào)間隔;文章來源:http://www.zghlxwxcb.cn/news/detail-638785.html
完整代碼
? ? 可以參考以下示例的完整代碼Springboot中攔截GET請(qǐng)求獲取請(qǐng)求參數(shù)驗(yàn)證合法性https://blog.csdn.net/weixin_45151960/article/details/132184917?spm=1001.2014.3001.5501文章來源地址http://www.zghlxwxcb.cn/news/detail-638785.html
到了這里,關(guān)于Springboot中創(chuàng)建攔截器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!