1. 程式人生 > >攔截Restful服務的三種方式

攔截Restful服務的三種方式

一、使用 Filter進行服務過濾

1、本地開發的過濾器:直接將過濾類置於Spring-Boot可掃描的路徑下,加@Component註解即可,程式碼示例:

服務:

過濾器:

執行效果:(進入過濾器兩次,有瀏覽器對靜態資源的訪問)

2、整合第三方的過濾器: 需要進行配置,程式碼示例:

服務不變,第三方類 用上圖的 TimeFilter 類代替,取消其上的 @Component 註解 即可模擬。

配置如下:

執行效果和上次結果完全一致。

執行結果:(取消瀏覽器對靜態資源的訪問)

二、使用攔截器:  服務類不變。

比過濾器的優勢在於 可以獲取到 該請求所屬的 ---類--- ,已經觸發的 哪個--- 方法----。

但是:攔截器不能獲取到 方法裡面的  --- 引數--- 。(切片 aspect 可以,見 三:)

1、攔截類(業務邏輯實現):

2、配置:

三:Aspect(切片)

1、引入依賴:

spring-boot-starter-aop

2、服務類:

3、寫切片,程式碼示例:

4、執行結果:

四、三種攔截過濾的 執行 順序: