spring框架之面向切面(Spring Aop)、攔截器、過濾器的區別

Filter過濾器:攔截web訪問url地址,在攔截器的訪問之前。

HandlerInterceptor:是springMVC項目中的攔截器,它攔截的目標是請求的地址Controller,比MethodInterceptor先執行。

實現一個HandlerInterceptor攔截器可以直接實現HandlerInterceptor接口,也可以繼承HandlerInterceptorAdapter類。

這兩種方法殊途同歸,其實HandlerInterceptorAdapter也就是聲明瞭HandlerInterceptor接口中所有方法的默認實現,而我們在繼承他之後只需要重寫必要的方法。

Spring AOP攔截器:只能攔截Spring管理Bean的訪問(業務層Service)

Filter與Interceptor聯繫與區別

1. 攔截器是基於java的反射機制,使用代理模式,而過濾器是基於函數回調。

2. 攔截器不依賴servlet容器,過濾器依賴於servlet容器。

3. 攔截器只能對Controller起作用,而過濾器可以對幾乎所有的請求起作用(可以保護資源)。

4. 攔截器可以訪問action上下文,堆棧裡面的對象,而過濾器不可以。

5. 執行順序:過濾前-攔截前-Controller處理-攔截後-過濾後。

spring框架之面向切面(Spring Aop)、攔截器、過濾器的區別


分享到:


相關文章: