javascript
springboot 控制台输出错误信息_高级码农Spring Boot实战进阶之过滤器、拦截器的使用...
眾所周知的Spring Boot是很優(yōu)秀的框架,它的出現(xiàn)簡化了新Spring應(yīng)用的初始搭建以及開發(fā)過程,大大減少了代碼量,目前已被大多數(shù)企業(yè)認(rèn)可和使用。這個(gè)專欄將對(duì)Spring Boot框架從淺入深,從實(shí)戰(zhàn)到進(jìn)階,不但我們要懂得如何去使用,還要去剖析框架源碼,學(xué)習(xí)其優(yōu)秀的設(shè)計(jì)思想。
一、過濾器
??過濾器是處于客戶端與服務(wù)器資源文件之間的一道過濾網(wǎng),在訪問資源文件之前,通過一系列的過濾器對(duì)請(qǐng)求進(jìn)行修改、判斷等,把不符合規(guī)則的請(qǐng)求在中途攔截或修改。也可以對(duì)響應(yīng)進(jìn)行過濾,攔截或修改響應(yīng)。
1、自定義一個(gè)TimeFilter類
2、配置方式
- @WebFilter注解的urlPatterns屬性配置了哪些請(qǐng)求可以進(jìn)入該過濾器,/*表示所有請(qǐng)求。
- 除了在過濾器類上加注解外,我們也可以通過FilterRegistrationBean來注冊(cè)過濾器。定義一個(gè)TimeFilterConfig類,加上@Configuration注解表明其為配置類,然后通過FilterRegistrationBean來注冊(cè)過濾器。
3、項(xiàng)目演示
控制臺(tái)輸出
- 【過濾器】開始執(zhí)行
- Controller:Hello World!
- 【過濾器】耗時(shí):26ms
- 【過濾器】結(jié)束執(zhí)行
二、攔截器
??攔截器,是面向切面編程(AOP,Aspect Oriented Program)的。就是在Service或者一個(gè)方法前調(diào)用一個(gè)方法,或者在方法后調(diào)用一個(gè)方法。比如動(dòng)態(tài)代理就是攔截器的簡單實(shí)現(xiàn),在調(diào)用方法前打印出字符串(或者做其它業(yè)務(wù)邏輯的操作),也可以在調(diào)用方法后打印出字符串,甚至在拋出異常的時(shí)候做業(yè)務(wù)邏輯的操作。
1、定義一個(gè)TimeInterceptor類
2、在TimeInterceptorConfig中通過InterceptorRegistry注冊(cè)過濾器。
3、項(xiàng)目演示
控制臺(tái)輸出
- 【攔截器】處理前
- com.boot.filter.controller.HelloController
- Controller:Hello World!
- 【攔截器】處理中
- 【攔截器】耗時(shí):22ms
- 【攔截器】處理后
- 【攔截器】耗時(shí):22ms
三、過濾器和攔截器的區(qū)別
主要區(qū)別:
本質(zhì)區(qū)別: ??
從靈活性上說攔截器功能更強(qiáng)大些,Filter能做的事情它都能做,而且可以在請(qǐng)求前,請(qǐng)求后執(zhí)行,比較靈活。Filter主要是針對(duì)URL地址做一個(gè)編碼的事情、過濾掉沒用的參數(shù)、安全校驗(yàn),其他的還是建議用interceptor。
執(zhí)行順序:
- 【過濾器】開始執(zhí)行
- 【攔截器】處理前
- com.boot.filter.controller.HelloController
- Controller:Hello World!
- 【攔截器】處理中
- 【攔截器】耗時(shí):20ms
- 【攔截器】處理后
- 【攔截器】耗時(shí):20ms
- 【過濾器】耗時(shí):27ms
- 【過濾器】結(jié)束執(zhí)行
過濾前-----攔截前-----Action處理-----攔截后-----過濾后。
總結(jié)
以上是生活随笔為你收集整理的springboot 控制台输出错误信息_高级码农Spring Boot实战进阶之过滤器、拦截器的使用...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好分期逾期一天还能继续用吗
- 下一篇: 电脑反应慢卡怎么解决_电脑开不了机怎么解