當前位置:編程學習大全網 - 編程軟體 - springaop原理

springaop原理

原理:sping aop是可以通過預編譯方式和運行期動態代理實現在不修改源代碼的情況下給程序動態統壹添加功能的壹種技術。AOP設計模式孜孜不倦追求的是調用者和被調用者之間的解耦,AOP 可以說也是這種目標的壹種實現。

其原理的相關技術:

AOP是OOP的延續,是Aspect Oriented Programming的縮寫,意思是面向切面編程。AOP(這裏的AOP指的是面向切面編程思想,而不是Spring AOP)主要的的實現技術主要有Spring AOP和AspectJ。

AspectJ的底層技術是靜態代理,即用壹種AspectJ支持的特定語言編寫切面,通過壹個命令來編譯,生成壹個新的代理類,該代理類增強了業務類,這是在編譯時增強,相對於下面說的運行時增強,編譯時增強的性能更好。

Spring AOP采用的是動態代理,在運行期間對業務方法進行增強,所以不會生成新類,對於動態代理技術,Spring AOP提供了對JDK動態代理的支持以及CGLib的支持。

JDK動態代理只能為接口創建動態代理實例,而不能對類創建動態代理。需要獲得被目標類的接口信息(應用Java的反射技術),生成壹個實現了代理接口的動態代理類(字節碼),再通過反射機制獲得動態代理類的構造函數,利用構造函數生成動態代理類的實例對象,在調用具體方法前調用invokeHandler方法來處理。

  • 上一篇:冬奧繪畫作品比賽壹般用多大的紙
  • 下一篇:煙花的意義和象征是什麽?
  • copyright 2024編程學習大全網