IOC = Inversion of control 依賴注入
關鍵類:
BeanWrapper,BeanFactory,ApplicationContext
1、BeanWrapper:提供一套通用的屬性設定機制;
執行個體:
object obj =Class.forName("net.user");
BeanWrapper bw =new BeanWrapper(obj);
bw.setPropertyValue("Name","erica");
2、BeanFactory:負責建立並維護Bean執行個體;
執行個體:
InputStream is=new FileInputStream("bean.xml");
XmlBeanFactory factory=new XmlFactory(is);
//"bean.xml" has "TheAction"'s config
Action action =(Action)factory.getBean("TheAction");
3、ApplictionContext:提供更多於應用架構相整合的特性,其中包括:國際化支援、資源訪問、事件傳播、多執行個體載入。
對於Web應用,spring可通過配置Web。xml載入。載入時讀取*\ApplicationContext.xml設定檔進行初始化。
可通過WebApplicationContextUtils.getWebApplicationContext()方法獲得當前語境的ApplicationContext執行個體。
請求處理流程:
1、將web頁面中的輸入元素封裝為一個(請求)資料對象;
2、根據請求的不同,調度相應的邏輯擔憂,並將(請求)資料對象作為參數傳入;
3、邏輯處理單元完成後,返回一個結果資料對象;
4、將結果資料對象中的資料與預先設計的表現層相融合展現給使用者。
關鍵類:DispatcherServlet
DispatcherServlet負責請求調度的核心引擎
預設載入/WEB-INF/<Servlet name>-Servlet.xml檔案,該檔案包含邏輯單元的分配策略,結構為:
- ViewResolver =>>InternalResourceViewResolver
定義Viewer的類型和相關屬性(V)<-->(M)
- *Mapping=>>SimpleUrlHandlerMapping
定義請求與邏輯單元的關聯。(link..)
- *Controler=>>自訂邏輯單元
定義自訂邏輯單元的屬性(C)<-->(M)
spring MVC的配置模式:
spring的DeispatcherServlet在被載入的同事會初始化spring MVC支援的幾個內部模組。如viewer,異常處理,HandlerMapping等。可以通過該類自動調用的設定檔對這些模組進行初始化定義。