天天看點

Spring的aop(面向切面程式設計)相關知識

  • aop的思想是橫向重複,縱向切割。
  • spring實作aop的原理:利用動态代理方式的在運作期間加入增強代碼。其中,動态代理的有兩種:其一,基于JDK的動态代理。被代理對象必須要實作接口,才能産生代理對象。如果沒有接口将不能使用動态代理技術。其二,基于cglib的動态代理。cglib代理可以對任何類生成代理,代理的原理是對目标對象進行繼承代理。 如果目标對象被final修飾,那麼該類無法被cglib代理。
  • 相關的名詞概念:

    Joinpoint(連接配接點)—-目标對象中所有可以增強的方法

    Pointcut(切入點)—-如果連接配接點相當于資料中的記錄,那麼切點相當于查詢條件,一個切點可以比對多個連接配接點

    Advice(通知/增強)—-增強的代碼

    Target(目标對象)—-被代理對象

    Weaving(織入)—-将增強代碼應用到切入點的過程

    Proxy(代理)—-将通知織入到目标對象之後形成代理對象

    Aspect(切面)—-切點+增強