1、AOP為AspectOrientedProgramming的縮寫,是面向切面編程,通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù)。
2、AOP是OOP的延續(xù),是軟件開發(fā)中的一個熱點,也是Spring框架中的一個重要內(nèi)容,是函數(shù)式編程的一種衍生范型。
3、AOP的出現(xiàn)彌補了OOP的這點不足,AOP是一個概念,一個規(guī)范,本身并沒有設(shè)定具體語言的實現(xiàn),AOP是基于動態(tài)代理模式。
【資料圖】
4、AOP是方法級別的,要測試的方法不能為static修飾,因為接口中不能存在靜態(tài)方法,編譯就會報錯。
5、AOP可以分離業(yè)務(wù)代碼和關(guān)注點代碼(重復(fù)代碼),在執(zhí)行業(yè)務(wù)代碼時,動態(tài)的注入關(guān)注點代碼。
6、切面就是關(guān)注點代碼形成的類。
7、SpringAOP中的動態(tài)代理主要有兩種方式,JDK動態(tài)代理和CGLIB動態(tài)代理。
8、JDK動態(tài)代理通過反射來接收被代理的類,并且要求被代理的類必須實現(xiàn)一個接口。
9、擴展資料AOP實現(xiàn)的關(guān)鍵在于AOP框架自動創(chuàng)建的AOP代理,AOP代理主要分為靜態(tài)代理和動態(tài)代理,靜態(tài)代理的代表為AspectJ。
10、而動態(tài)代理則以SpringAOP為代表,靜態(tài)代理是編譯期實現(xiàn),動態(tài)代理是運行期實現(xiàn),可想而知前者擁有更好的性能。
11、靜態(tài)代理是編譯階段生成AOP代理類,也就是說生成的字節(jié)碼就織入了增強后的AOP對象;動態(tài)代理則不會修改字節(jié)碼,而是在內(nèi)存中臨時生成一個AOP對象,這個AOP對象包含了目標對象的全部方法,并且在特定的切點做了增強處理,并回調(diào)原對象的方法。
12、參考資料來源;搜狗百科--AOP AOP是OOP的延續(xù),是AspectOrientedProgramming的縮寫,意思是面向方面編程。
13、AOP實際是GoF設(shè)計模式的延續(xù),設(shè)計模式孜孜不倦追求的是調(diào)用者和被調(diào)用者之間的解耦,AOP可以說也是這種目標的一種實現(xiàn)。
14、 舉例:假設(shè)有在一個應(yīng)用系統(tǒng)中,有一個共享的數(shù)據(jù)必須被并發(fā)同時訪問,首先,將這個數(shù)據(jù)封裝在數(shù)據(jù)對象中,稱為DataClass,同時,將有多個訪問類,專門用于在同一時刻訪問這同一個數(shù)據(jù)對象。
15、 為了完成上述并發(fā)訪問同一資源的功能,需要引入鎖Lock的概念,也就是說,某個時刻,當(dāng)有一個訪問類訪問這個數(shù)據(jù)對象時,這個數(shù)據(jù)對象必須上鎖Locked,用完后就立即解鎖unLocked,再供其它訪問類訪問。
16、AOP:advance online publication.在線雜志出版物。
17、 面向切面編程:Aspect Oriented Programming AOP是OOP的延續(xù),是Aspect Oriented Programming的縮寫,意思是面向切面編程。
18、可以通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)在不修改源代碼的情況下給程序動態(tài)統(tǒng)一添加功能的一種技術(shù)。
19、AOP實際是GoF設(shè)計模式的延續(xù),設(shè)計模式孜孜不倦追求的是調(diào)用者和被調(diào)用者之間的解耦,AOP可以說也是這種目標的一種實現(xiàn)。
20、oop:縱向的業(yè)務(wù)。
21、Aop:oop的一個橫向服務(wù),是對oop進一步補充,提高安全、事務(wù)、日志等的集中式處理。
22、相關(guān)的裝備before、around、after樓下的解釋應(yīng)該不是樓主想要的。
23、我想應(yīng)該是年度經(jīng)營計劃(annual operating program)。
本文到此分享完畢,希望對大家有所幫助。
[責(zé)任編輯:linlin]
標簽: