spring18:aop介绍
生活随笔
收集整理的這篇文章主要介紹了
spring18:aop介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? aop是基于動態代理實現,使用的是jdk,cglib的動態代理。
? aop最重要的是實現解耦合:業務功能和非業務功能的解耦合。
? IoC:解決的是業務對象之間的耦合。例如Service和Dao對象之間的耦合。
?
?spring aop 使用純java實現,不需要專門的編譯過程和類加載器,在運行期通過代理方式向目標類織入增強代碼。
??aspectJ是一個基于java語言的aop框架,spring2.0開始,spring aop引入對AspectJ的支持,AspectJ擴展了java語言,提供了一個專門的編譯器,在編譯時提供橫向代碼的織入。
?
??aop實現原理
????aop底層采用代理機制進行實現。
????接口 + 實現類, spring采用jdk的動態代理 proxy。jdk動態代理代碼實現
????實現類沒有接口,spring采用cglib字節碼增強。?cglib實現動態代理
????
aop術語:
???target目標類, 需要被代理的類。
???Joinpoint(連接點)可能被攔截到的方法。
????Pointcut切入點,已經被增強的連接點。
????advice 通知增強,增強代碼。
????weaving(織入)是把增強advice應用到目標對象target來創建新的代理對象的過程。
? ? aspect(切面)是切入點和通知的結合。
?
總結
以上是生活随笔為你收集整理的spring18:aop介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring17:Bean的生命始末标签
- 下一篇: spring19:AspectJ的初步介