Spring AOP 攔截失效

2021-08-25 19:55:03 字數 504 閱讀 2810

最近做個人產品,

由於新模組其中乙個新資料表需要關聯到舊模組的乙個資料表,存在主從關係,導致新舊模組進行相關操作(刪除)時,需要維繫完整性。

考慮到不想汙染舊模組(不想舊模組感知新模組的存在),因此這裡在新模組中,利用aop攔截舊模組dao的刪除方法,使當舊模組的資料刪除之前,能夠先進行新模組的完整性關係刪除。

但問題出來了,aop攔截沒辦法攔截到對應的dao方法。一開始以為是配置出錯,但又沒見報錯。於是把dao的攔截提公升乙個層次為service的攔截,奇蹟般的跑起來了,難到aop還會鄙視dao。

後來發現,原來一切的問題都在於整合,由於舊某塊的dao對應的方法(delete(integer id))是整合與別的類,同時介面也是整合於乙個公共的dao介面,spring進行aop攔截的時候,如果使用**的話,沒進行父類api的檢查,所以不能攔截父類繼承過來的方法。硬是要如此實現的話,就只能修改spring的配置,使其強制使用cglib編譯而不用**方式。

由於情況比較特別,又未能發現相關解決辦法,這裡就貢獻一下!

Spring aop 實現異常攔截

使用aop異常掛載功能可以統一處理方法丟擲的異常,減少很多重複 實現如下 1 實現throwadvice 1 public class exceptionhandler implements throwsadvice 8 1 bean id exceptionhandler class com.lz...

Spring AOP 前置增強攔截不到

最近在用aop寫乙個在新增操作前統一配置建立人建立時間等基本資訊的功能,但是發現無論如何都攔截不到該有的請求 createbyhandler execution com.isoft.edu.api.serviceimpl.persist id beforeadd beforeadd pointcut...

SpringAOP動態攔截方法並重寫

需求理解 當我們在對某個方法進行重寫的時候,我們不想修改源 希望通過讀取配置檔案,獲取識別符號,判斷是否需要重寫,在不修改源 的基礎上實現動態的修改了方法。在這裡我們用到了springaop的aspect註解,通過新增 around註解實現攔截指定切點的方法。下面 舉例 aspect compone...