javascript
Spring源码:AOP(1)
AOP的組成部分
幾個(gè)關(guān)鍵部分: 一個(gè)是AOP的配置(攔截規(guī)則的配置),一個(gè)是代理對象的創(chuàng)建,一個(gè)是統(tǒng)一的攔截調(diào)用過程。
AOP的配置:Spring是自己定義了一套規(guī)則同時(shí)集成了AspectJ的語法,抽象為了Pointcut類。
代理對象的創(chuàng)建:SpringAOP定義了一個(gè)工廠類AopProxy,同時(shí)支持JDK動態(tài)代理和CGlib動態(tài)代理。
統(tǒng)一的攔截調(diào)用過程:則是使用了AOP聯(lián)盟中定義的攔截過程:Advice—–>Interceptor——->MethodInterceptor。但是SpringAOP在這個(gè)基礎(chǔ)上做了一些擴(kuò)展,形成了自己的一套體系。
接下來介紹Spring AOP 各組成部分:
Advice:SpringAOP聯(lián)盟中定義的類。是一個(gè)標(biāo)識性的接口。通知類型的接口。同時(shí)也是Interceptor、MethodInterceptor的父類。通知類型都有去實(shí)現(xiàn)的一個(gè)接口。
Advisor:關(guān)聯(lián)了Advice和Pointcut。在SpringAOP中是一個(gè)很關(guān)鍵的類。上起到了連接點(diǎn)的匹配下起到了通知類型的調(diào)用。統(tǒng)一了攔截的調(diào)用過程。
Advised:關(guān)聯(lián)了Advisor和TargetSource的類。也是AOP中一個(gè)很關(guān)鍵的類。AOP進(jìn)行方法攔截的時(shí)候,就是從它里面獲取的攔截調(diào)用鏈。
aop各組成 部分及相互關(guān)系,如下類圖:
總結(jié)
以上是生活随笔為你收集整理的Spring源码:AOP(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAC模式和全局模式「建议收藏」(代理软
- 下一篇: Spring源码:AOP转文