框架自然是製作好了基本架子,在高級語言代碼開發功能角度來看。框架制定了功能模塊,用戶使用框架,也是爲了使用這些功能模塊,而程序員使用框架也是基於框架的功能進行業務功能的開發。那麼spring的核心功能是什麼呢?
定義: 不修改源代碼的情況下給程序中多個點上動態添加功能的一種技術
連接點: 可以被選擇來進行增強的方法點
切入點: 選擇增強的方法
通知: 增強功能
作爲設計者如何實現AOP功能?功能---->代碼---->類----->方法,即我們如何編寫類方法實現增強的功能。當我們不知道用戶要增強什麼什麼功能時,需要定義一套標準的API來應對變化未知。這套標準應該解決兩個問題
具體實現
1、定義一套標準:使用面向接口編程,接口目的是規範用戶,提供功能邏輯,用戶通過實現這個接口,實現功能邏輯
2、增強的具體功能:
3、增強的位置:
當增強類編寫完成,切入點類也編寫完成,那麼如何讓用戶自己書寫的類被用戶書寫的增強類切中併產生關聯呢?
此時就需要將用戶編寫的類交給框架來生產,在生產類的過程中,框架會判斷類是否需要被增強,當需要被增強時,框架會使用代理的方式將類的實例中的方法進行增強,生成另外一個增強後的實例對象返回給用戶。那麼這個生產的過程就叫做IOC。
1、代理過程
2、靜態代理
3、動態代理
4、具體增強邏輯