?上一篇:
Spring核心技術原理-(1)-通過Web開發演進過程了解一下為什麼要有Spring?
上一篇從Web開發演進過程的一個側面簡述了一下為什麼會有Spring?事實上只介紹了為什麼會有Spring IOC(控制反轉/依賴注入)以及Spring IOC的雛形。我們都知道Spring的兩個核心知識點是:IOC和AOP。因此,這一篇還是以Web開發演進過程為線索繼續探討一下為什麼會有Spring AOP?等介紹完這兩個核心的知識點之後,才會進一步展開對Spring核心原理的探討!
一、Web開發演進到一定階段的痛點
我們在初學習Java Web的時候,應該都經歷了以下的階段:
(1)一個主函數main中包含了所有的方法; (2)將主函數中的方法進行拆分封裝,抽取為一個個的方法; (3)按照每一個方法不同的功能分為一個個的類; (4)有了MVC模型之後,我們按照MVC的思想將我們的代碼拆分為三層,每層負責不同的功能,進行分門別類的管理;
很多程序的功能還可以通過繼承關係而得到重用,進一步提高了開發效率。再後來,又出現了各種各樣的設計模式,使設計程序功能變得得心應手。
在面向對象的大環境下,我們可以很好地組織代碼,通過繼承、封裝和多態的思想去設計一個個比較讓人滿意的類,但是我們慢慢的發現,我們的代碼中逐漸多了很多重複性的代碼,有人可能會想到,把這些重複性的代碼抽取出來不就好了嗎?是這樣的,我們看一下這種思路的一個實例: