探祕AOP實現原理

可以這麼說,AOP是基於動態代理實現的。

那麼,這個過程是怎樣的?

首先,我們有這樣的一個Service類,它是被作為切面的一個類:

探秘AOP實現原理

它實現了User接口,因為我們要使用JDK動態代理來實現這個過程,所以必須要實現這樣一個接口。

然後,我們生成一個代理對象:

探秘AOP實現原理

這裡需要實現一個handler:

探秘AOP實現原理

這個handler的作用是負責方法調用前的邏輯處理,

我們運行一下:

探秘AOP實現原理

可以看到會在addUser方法調用前執行日誌記錄,那麼我們在Service類中增加一個方法:

探秘AOP實現原理

也可以看到日誌記錄是正常工作的,那麼我們梳理一下AOP的實現過程:使用動態代理生成一個目標對象的代理對象,然後這個代理對象在調用目標對象之前總會執行特定的方法調用前邏輯。


分享到:


相關文章: