Java面試-Spring AOP

6.1、什麼是 AOP?

AOP(Aspect-Oriented Programming), 即 面向切面編程, 它與
OOP( Object-Oriented Programming, 面向對象編程) 相輔相成, 提供了與 OOP 不同的抽象軟件結構的視角. 在 OOP 中, 我們以類(class)作爲我們的基 本單元, 而 AOP 中的基本單元是
Aspect(切面)

6.7、AOP 有哪些實現方式?

靜態代理

指使用 AOP 框架提供的命令進行編譯,從而在編譯階段就可生成 AOP 代理類, 因此也稱爲編譯時增強;

   編譯時編織(特殊編譯器實現)
   類加載時編織(特殊的類加載器實現)。

動態代理

在運行時在內存中“臨時”生成 AOP 動態代理類,因此也被稱爲運行時增強。

JDK 動態代理 CGLIB

6.8、Spring AOP and AspectJ AOP 有什麼區別?

Spring AOP 基於動態代理方式實現;AspectJ 基於靜態代理方式實現。Spring AOP 僅支持方法級別的 PointCut;提供了完全的 AOP 支持,它還支持屬性級 別的 PointCut。

6.9、如何理解 Spring 中的代理?

將 Advice 應用於目標對象後創建的對象稱爲代理。在客戶端對象的情況下,目 標對象和代理對象是相同的。

Advice + Target Object = Proxy

6.10、什麼是編織(Weaving)?

爲了創建一個 advice 對象而鏈接一個 aspect 和其它應用類型或對象,稱爲編 織(Weaving)。在 Spring AOP 中,編織在運行時執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章