讀《Spring開發指南》第一章

讀《Spring開發指南》第一章

一、Spring初探

1、日誌文件
(1)Spring採用Apache common_logging,結合Apache log4j作爲日誌輸出組件
(2)在Classpath中新建log4j.properties配置文件

2、簡介
(1)Spring是一個從實際項目開發經驗中抽取的,可高度重用的應用框架
(2)控制反轉IOC=Inverse Of Control 或者 依賴注入DI=Dependence Injection

二、Spring基礎語義

1、依賴注入
(1)組件之間的依賴關係由容器在運行期決定
(2)容器動態地將某種依賴關係注入到組件中

三、Spring Bean封裝機制

1、無侵入性
(1)引入Java地Reflection機制,通過動態調用地方式避免硬編碼方式的約束
(2)核心組件BeanFactory
(3)org.springframework.beans包含核心組件的實現類,核心爲BeanWrapper和BeanFactory類

2、Bean Factory
(1)負責創建並維護Bean實例
(2)可以配置的項目

Bean屬性值及依賴關係(對其他Bean的引用)
Bean創建模式(是否Singleton模式,即是否只針對指定類維持全局唯一的實例)
Bean的初始化和銷燬方法
Bean的依賴關係

(3)根據指定的配置文件,BeanFactory從中讀取類名、屬性名/值,然後通過Reflection機制進行Bean加載和屬性設定

3、配置
(1)id:唯一標識,代碼中通過BeanFactory獲取JavaBean實例時需以此作爲索引名稱
(2)class:Java Bean類名
(3)singleton:單例模式,true則在BeanFactory作用範圍內,只維護此Java Bean的一個實例,通過BeanFactory獲取此JavaBean實例的引用,如果fasle,每次都將創建一個新的實例返回
(4)init-method:初始化方法,創建實例後,在嚮應用層返回引用之前執行,一般用於一些資源的初始化工作
(5)destroy-method:銷燬方法,一般用於資源釋放
(6)depends-on:指定其依賴關係,在此Bean加載之前,首先對depends-on所指定的資源進行加載
(7)<value>:指定屬性值
(8)<ref>:指定屬性對BeanFactory中其他Bean的引用關係

4、ApplicationContext
(1)相比於BeanFactory的擴展功能

國際化支持
資源訪問:支持對文件和URL的訪問
事件傳播:便於檢測系統中狀態改變
多實例加載:在同一個應用中加載多個Context實例

5、Web Context
(1)加載器

ContextLoaderListener
ContextLoaderServlet

(2)web.xml
在這裏插入圖片描述
(3)Web容器會自動加載/WEB-INF/applicationContext.xml初始化

四、SpringMVC

1、配置
(1)定義請求Servlet:org.springframework.web.servlet.DispatcherServlet
(2)DiapatcherServlet是Spring MVC中負責請求調度的核心引擎,所有請求將由此Servlet根據配置分發至各個邏輯處理單元,內部同時也維護了一個ApplicationContext實例
(3)<init - param>節點中名爲contextConfigLocation的Servlet參數,可以指定位置
(4)忽略設定,則默認爲/WEB-INF/<servlet name> -servlet.xml
(4)當前環境下,默認是/WEB-INF/Dispathcer-servlet.xml

2、請求映射
(1)負責數據封裝和請求分發的Dispatcher對傳入的HttpServletRequest進行封裝,形成請求數據對象,之後根據配置文件調用對應業務邏輯類的入口方法

3、ModelAndView
(1)包含了邏輯單元返回的結果數據集和表現層信息
(2)傳遞給Dispather,由Dispather根據其中保存的結果數據集和表現層設定合成最後的頁面
(2)兩種構造方法

public ModelAndView(String viewname):返回界面無需通過結果數據集進行填充
public ModelAndView(String viewname, Map model):返回界面由指定的結果數據集加以填充,數據集採用了Map接口
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章