核心容器提供了Spring框架的基本功能,
主要包括:spring-core,spring-beans,spring-context,spring-context-support,spring-expression五個模塊
spring-core和spring-beans作為框架的基礎部分,提供了IoC和依賴注入功能(DI)
spring-context建立在spring-core和spring-beans的基礎上,是一個組態檔
spring-context-support對集成的第三方庫提供支持,如:快取(EhCache...),郵件(JavaMail),調度和模板引擎(FreeMarker...)
spring-expression 運算式語言,用于在運行時查詢和操作物件
spring-core的主要組件是BeanFactory,從名字得知,它是一種工廠模式的實作;
BeanFactory通過控制反轉(IoC)模式將應用程式的配置和依賴性(類與類之間的關系)規范 與 實際的應用程式代碼分開(尤指業務代碼),從而降低了類與類之間的耦合度;
IoC(Inversion of Control)控制反轉可以分為“控制”和“反轉”
控制:獲取物件的方式
反轉:從主動獲取變成了被動獲取
主動式:
XxxServlet{
//以往程式都是自己主動創建(new)物件來建立類之間的依賴關系(例如:Servlet依賴于Service)
XxxService xs = new XxxService();
}
!!主動式:是在編譯時系結物件(即確立類之間關系)
被動式
//資源的獲取不是我們自己創建,而是交給一個容器來創建和設定
//XxxServlet依賴于XxxkService,容器幫我創建XxxkService物件,并把XxxService物件賦值過去
XxxServlet{
XxxService xs;
public void test1(){
xs.checkout();
}
}
!!被動式:是在運行時系結物件(在容器初始化 到 容器初始化完成之前確立類之間的關系)
從編譯期(new)確立依賴關系變成運行期(反射)確立依賴關系,這就是Spring的解耦思路
DI(Dependency injection)依賴注入:
容器知道哪個組件(類)運行的時候,需要另外一個類(組件);容器通過反射的形式,將容器中準備的XxxService注入(利用反射給屬性賦值)到XxxkServlet
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/148767.html
標籤:Java
上一篇:自定義的槽有問題??求解 謝謝
