Filter、Interceptor、Aspect區別與應用

Filter:和框架無關,可以控制最初的http請求,但是更細一點的類和方法控制不了。

可以攔截到方法的請求和響應(ServletRequest request, ServletResponse response)
可以對請求響應進行處理,比如設置字符編碼,鑑權操作等

Interceptor:可以控制請求的控制器和方法,但控制不了請求方法裏的參數

可以設置爲方法執行之前(preHandle)和方法執行之後(afterCompletion)
回調操作(postHandle),可以獲取執行的方法的名稱/請求(HttpServletRequest)等
常用於處理頁面提交的請求響應並進行處理,例如做國際化,做主題更換,過濾等

Aspect : 可以自定義切入的點,能拿到方法的參數,但是拿不到http請求,可以通過其他方式如RequestContextHolder獲得。

可以對操作進行橫向的攔截,可以獲取執行方法的參數,對方法進行統一的處理
常見使用日誌,事務,請求參數安全驗證等

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章