拦截器、过滤器、@Aspect 区别
生活随笔
收集整理的這篇文章主要介紹了
拦截器、过滤器、@Aspect 区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、需求場景
之前也有在文章寫道 “攔截器\過濾器" 的區別,文章鏈接,在實際開發過程中,我們可能會遇到攔截請求參數的需求,在這我舉個場景。 某一個接口的請求參數都是加密的,而請求參中還有一些跟業務無關的數據,需要剔除。?
2、問題產生
那么怎么能夠實現只要和業務有關的數據呢?
首先,我們想到的是通過攔截器,對加密的數據進行解密,然后把解密后的數據重新放到 request?中,request.setAttribute("數據名",?數據); 其實呢,還可以通過 @Aspect 注解,在方法里通過 @before,@around 和 @after 注解的方式來攔截數據,配置起來比攔截器簡單。 疑惑就在這產生了,通過 @Aspect 注解的方式寫的跟攔截器有什么區別呢,他到底是不是攔截器呢??
3、問題總結
3.1、三者不同
@Aspect 注解形式是?AOP?的一種實現。AOP 使用的主要是動態代理 。 過濾器使用的主要是反射 。 攔截器使用的主要是回調 。3.2、示例分析
前臺一個請求過來 ,會先進行過濾器處理,看程序是否受理該請求 。?過濾器放過后 , 程序中的攔截器進行處理 ,處理完后進入 被 AOP 動態代理重新編譯過的主要業務類進行處理 。 通過示例去理解三者的不同 ,所以三者不存在所屬關系。 博客地址:https://www.cnblogs.com/niceyoo?
總結
以上是生活随笔為你收集整理的拦截器、过滤器、@Aspect 区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ip-guard网页浏览放开微信二维码和
- 下一篇: hdu 3549 Flow Proble