java的AOP原理

參考:

  • https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html
    AOP(Aspect Orient Programming),作為面向?qū)ο缶幊痰囊环N補(bǔ)充,廣泛應(yīng)用于處理一些具有橫切性質(zhì)的系統(tǒng)級(jí)服務(wù),如事務(wù)管理、安全檢查、緩存、對(duì)象池管理等。AOP 實(shí)現(xiàn)的關(guān)鍵就在于 AOP 框架自動(dòng)創(chuàng)建的 AOP 代理,AOP 代理則可分為靜態(tài)代理和動(dòng)態(tài)代理兩大類,其中靜態(tài)代理是指使用 AOP 框架提供的命令進(jìn)行編譯,從而在編譯階段就可生成 AOP 代理類,因此也稱為編譯時(shí)增強(qiáng);而動(dòng)態(tài)代理則在運(yùn)行時(shí)借助于 JDK 動(dòng)態(tài)代理、CGLIB 等在內(nèi)存中“臨時(shí)”生成 AOP 動(dòng)態(tài)代理類,因此也被稱為運(yùn)行時(shí)增強(qiáng)...

  • https://www.tianmaying.com/tutorial/spring-aop
    軟件工程有一個(gè)基本原則叫做“關(guān)注點(diǎn)分離”(Concern Separation),通俗的理解就是不同的問(wèn)題交給不同的部分去解決,每部分專注于解決自己的問(wèn)題。這年頭互聯(lián)網(wǎng)也天天強(qiáng)調(diào)要專注嘛!這其實(shí)也是一種“分治”或者“分類”的思想,人解決復(fù)雜問(wèn)題的能力是有限的,所以為了控制復(fù)雜性,我們解決問(wèn)題時(shí)通常都要對(duì)問(wèn)題進(jìn)行拆解,拆解的同時(shí)建立各部分之間的關(guān)系,各個(gè)擊破之后整個(gè)問(wèn)題也迎刃而解了。人類的思考,復(fù)雜系統(tǒng)的設(shè)計(jì),計(jì)算機(jī)的算法,都能印證這一思想。額,扯遠(yuǎn)了,這跟AOP有神馬關(guān)系?....

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容