詳細的廢話相信很多書籍視頻資料都已經很多了,這里說幾個小編個人認為對於理解Spring框架很重要的點。歡迎批評指正。
1)Spring的控制反轉
先說說“依賴”,在面向對象程序設計中,類A中用到了類B的實例對象或者類B的方法,叫做類A依賴於類B。
在傳統的代碼實現中,這種依賴關系通過程序代碼直接實現。而在Spring中,把這個工作交給了IoC容器,對象的依賴關系由容器來控制,程序只負責接口(Interface)的控制。
這種控制權從代碼到外部容器的轉移,稱為“控制反轉(IoC—Inversion of Control)”,也稱為“依賴注入(DI—Dependency Injection)”。
這是Spring框架的核心。Spring的核心容器(Core Container)就是IoC容器。
例如,前兩篇博文案例中所用到的配置文件hellobean.xml。將對象實例化由以new的方式轉變為了以xml配置(或者是注解(annotation))的方式實現。將實例化對象的控制權“反轉”給了IoC容器。同時,在容器實例化對象時,對象之間的相互依賴關系也構建好了。
2)Spring框架的工作原理
Spring框架的核心組件是Spring IoC容器(BeanFacory接口或者ApplicationContext接口)和Spring配置文件(或者注解配置信息)。
Spring的基本思想是:把對象之間的依賴關系轉移到配置文件(或者注解配置)中,由工廠類(BeanFacory接口)來創建對象。
由容器動態地創建並注入對象,決定所配置對象的創建、管理和銷毀。
程序執行過程:
(1)根據業務要求創建實體類或給出接口的實現;————例如上兩篇博文中的HelloBean類
(2)利用所創建的類,在配置文件中配置Bean信息;————例如上兩篇博文中的hellobean.xml配置文件
(3)創建Spring容器(該容器與配置文件相關聯——讀取配置信息)————例如上兩篇博文中的web.xml文件中的配置上下文參數,然后在jsp腳本中獲取獲取
(4)從容器中獲取實例對象,由對象調用方法完成所需要的業務處理。
本篇參考書籍《Java EE框架開發技術與案例教程》