在《spring詳解-1之Spring核心模塊》中講解了Spring的組件構成,接着我們回過頭來深入認識一下Spring是什麼?
Spring是一個輕量級的IoC和AOP的容器框架。
上面一句話概述出了Spring是什麼,這裡可能會有朋友問什麼是輕量級,什麼是IoC,什麼是AOP,什麼是容器,什麼是框架?這類問題,那麼我們現在就針對這部分術語為大家解釋。
輕量級:主要指其底層實現沒有那麼複雜,另外占用的資源比較少;還有一個叫法是非侵入性
這裡還有一個專業名詞需要給朋友們解釋一下,就是非侵入性:有朋友之前如果學習或使用過Struts2,自定義一個action類可以選擇去實現struts2的action接口或繼承ActionSupport類,這樣的話就可以使用接口中的一些常量,像這種方式去繼承或實現接口去獲取一些功能,就可以說是具有侵入性,也就是說自定義的那個action類其實是知道Struts2框架是存在的;當然我們在自定義Action類的時候也可以選擇不去繼承或實現Struts2框架提供的接口或類,那這樣的話,自定義的Action類就不知道Struts2框架是否存在,這就叫沒有侵入性,簡單說我隻需要提供一個自定義類,它并不知道框架是否存在。
IoC(inversion of control 控制反轉):是指對象如何得到它的内部關系對象的責任反轉了
普通方式創建對象和其管理對象
普通創建對象并且創建對象的關聯對象時是需要我們手動去創建的。有了IoC以後這些都不需要我們去做,而是将這些工作都交給Spring去管理維護了。隻需要我們在類中給屬性提供getter、setter方法并提供響應的配置文件即可。這其實就是IoC。
IoC方式創建對象和關聯對象:
IoC方式創建對象和關聯對象
通過兩張圖比較會發現,有了IoC容器以後,我們隻需要把我們應該關注的業務作為重點關注部分,而和業務無關的我們很方便的就交給了IoC容器去管理,另外,朋友們還發現普通創建并組合關聯對象時其實是一種主動的定位查找被關聯的對象;而使用IoC容器以後主動就變成了被動,就是讓Spring把被關聯的對象先創建出來,再給到我們即可。這樣我們的中心就轉移到了具體業務上去了。
AOP(面向橫切面編程):指将和業務無關的通用性功能,抽取出來作為一個組件,放置在一個橫切面中,例如:處理字符編碼問題的功能;我們使用的Filter和Intercepter都是AOP的具體實現。
容器:可以管理對象,控制對象的生命周期
框架:将一些重複性,通用性的代碼進行封裝,使用其搭建成一個除業務流程外的代碼的骨架。
這篇寫到這裡,後續詳細講解IoC和AOP
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!