2、Spring之核心容器
阿新 • • 發佈:2020-07-08
核心容器提供了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();
}
}
!!被動式:是在執行時繫結物件(在容器初始化 到 容器初始化完成之前確立類之間的關係)
DI(Dependency injection)依賴注入:
容器知道哪個元件(類)執行的時候,需要另外一個類(元件);容器通過反射的形式,將容器中準備的XxxService注入(利用反射給屬性賦值)到XxxkServlet