- aop的思想是橫向重複,縱向切割。
- spring實作aop的原理:利用動态代理方式的在運作期間加入增強代碼。其中,動态代理的有兩種:其一,基于JDK的動态代理。被代理對象必須要實作接口,才能産生代理對象。如果沒有接口将不能使用動态代理技術。其二,基于cglib的動态代理。cglib代理可以對任何類生成代理,代理的原理是對目标對象進行繼承代理。 如果目标對象被final修飾,那麼該類無法被cglib代理。
-
相關的名詞概念:
Joinpoint(連接配接點)—-目标對象中所有可以增強的方法
Pointcut(切入點)—-如果連接配接點相當于資料中的記錄,那麼切點相當于查詢條件,一個切點可以比對多個連接配接點
Advice(通知/增強)—-增強的代碼
Target(目标對象)—-被代理對象
Weaving(織入)—-将增強代碼應用到切入點的過程
Proxy(代理)—-将通知織入到目标對象之後形成代理對象
Aspect(切面)—-切點+增強