回覆列表
  • 1 # 使用者3121694401093

    1.JDK動態代理;此時代理物件和目標物件實現了相同的介面,目標物件作為代理物件的一個屬性,具體介面實現中,可以在呼叫目標物件相應方法前後加上其他業務處理邏輯。;代理模式在實際使用時需要指定具體的目標物件,如果為每個類都新增一個代理類的話,會導致類很多,同時如果不知道具體類的話,怎樣實現代理模式呢?這就引出動態代理。;JDK動態代理只能針對實現了介面的類生成代理。; ;2.CGLIB代理;CGLIB(CODE GENERLIZE LIBRARY)代理是針對類實現代理,主要是對指定的類生成一個子類,覆蓋其中的所有方法,所以該類或方法不能宣告稱final的。;如果目標物件沒有實現介面,則預設會採用CGLIB代理;如果目標物件實現了介面,可以強制使用CGLIB實現代理(新增CGLIB庫,並在spring配置中加入<aop:aspectj-autoproxy proxy-target-class="true"/>)。;AOP包括切面(aspect)、通知(advice)、連線點(joinpoint),實現方式就是透過對目標物件的代理在連線點前後加入通知,完成統一的切面操作。

  • 中秋節和大豐收的關聯?
  • 狗狗大便像痰一樣?