Spring框架AOP執行原理?AOP在事務管理方面是怎么實現的


Spring AOP 使用的動態代理。

所謂的動態代理就是說AOP框框不會去修改字節碼,而是在內存中臨時為方法生成一個AOP對象,這個AOP對象包含了目標對象的全部方法,並且在特定的切點做了增強處理,並回調對象的方法。

Spring AOP 中的動態代理主要有兩種方式,JDK動態代理和CGLIB動態代理。

JDK動態代理的核心是InvocationHandler接口和Proxy類。如果目標類沒有實現接口,那么Spring AOP會選擇使用CGLIB來動態代理目標類。

CGLIB(Code Generation Libray),是一個代碼生成的類庫,可以在運行時動態生成某個類的子類。注意,CGLIB是通過繼承的方式做的動態代理,因為如果某個類被標記為final,那么它是無法使用CGLIB做動態代理的。

 

AOP 在事務管理方面。Spring使用AOP來完成聲明式的事務管理有Annotation和xml兩種形式。開發中,方便代碼編寫,很多時候在Spring配置文件中配置事務管理器並開啟事務控制注解。在業務類或業務類方法中添加@Transactional實現事務控制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM