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