欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

AOP通知執行的內部原理是什么

張吉惟2年前18瀏覽0評論

AOP通知執行的內部原理是什么?

在我的理解中 通知執行指的是前置/后置/異常/圍繞通知。這些通知的原理實際上可以認為是AOP的實現原理。

Spring AOP的底層是通過代理來實現的,常見的如JDK的動態代理,CGLIB的動態代理,動態代理技術這里我就選擇性的忽略了,因為這也是我們在面試的時候會被經常問到的技術。但是如果我們再向下深入的去追究原理,我們會發現另外一種框架:ASM。

ASM是什么呢?如果你有研究過源碼,你會發現在Spring的AOP相關jar中,有

asm.jar

的相關身影,ASM是一種Java 字節碼操控框架,為什么這么說呢?因為他可以在類被加載入 Java 虛擬機之前動態改變類行為,比如在某一行代碼前/后做一些其他業務,比如日志信息。而改變類行為是直接作用到class文件中,也就實現了AOP中各種執行通知。

但是ASM 與 Proxy 編程是有不同之處的,首先

ASM 更小更快,因為其直接作用于字節碼,其次ASM不需要為增強代碼而新定義一個

接口,它直接生成的代碼去覆蓋原來的類。而ASM 已經被廣泛應用于一系列 Java 項目:比如我們很熟悉的CGLIB和AspectJ。 Spring 也通過 cglib,另一個更高層一些的自動代碼生成工具使用了 ASM。

希望我的回答能對你有所幫助

asm java,AOP通知執行的內部原理是什么