AOP(面向切面編程)

AOP的概述

AOP又叫面向切面編程。
AOP採取橫向抽取機制,取代了傳統的縱向繼承體系。
Spring的AOP採用了春Java實現,不需要專門的編譯過程和類加載器,子啊運行期間通過動態代理的方式向目標對象注入增強代碼。

AOP的應用場景

在不修改源碼的情況下對程序進行增強
權限校驗、日誌記錄、性能監控、事務控制

代理模式(靜態代理和動態代理)

靜態代理(使用繼承關係實現、裝飾者模式)

優點:可以在不修改目標對象的功能的前提下,對目標對象進行功能擴展
缺點:因爲代理對象需要與目標對象 實現一樣的接口,所以隊友很多代理類,同時接口一旦增加方法,就要對目標對象和代理對象都進行維護。(通過動態代理可以解決這個問題)

動態代理(JDK動態代理、cglib動態代理)

優點:有了目標對象,只要通過代理工廠就可以爲所有的目標對象創建工廠對象。
缺點:目標對象必須至少實現一個接口,代理對象強制轉換時,只能轉成目標對象所實現的接口類型。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章