參考:
https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html
AOP(Aspect Orient Programming)球化,作為面向?qū)ο缶幊痰囊环N補(bǔ)充谅年,廣泛應(yīng)用于處理一些具有橫切性質(zhì)的系統(tǒng)級服務(wù)力崇,如事務(wù)管理、安全檢查、緩存、對象池管理等。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)偿凭,通俗的理解就是不同的問題交給不同的部分去解決,每部分專注于解決自己的問題派歌。這年頭互聯(lián)網(wǎng)也天天強(qiáng)調(diào)要專注嘛弯囊!這其實(shí)也是一種“分治”或者“分類”的思想,人解決復(fù)雜問題的能力是有限的胶果,所以為了控制復(fù)雜性匾嘱,我們解決問題時(shí)通常都要對問題進(jìn)行拆解,拆解的同時(shí)建立各部分之間的關(guān)系早抠,各個(gè)擊破之后整個(gè)問題也迎刃而解了霎烙。人類的思考,復(fù)雜系統(tǒng)的設(shè)計(jì)蕊连,計(jì)算機(jī)的算法悬垃,都能印證這一思想。額甘苍,扯遠(yuǎn)了尝蠕,這跟AOP有神馬關(guān)系?....