在普通三層架構(gòu)的基礎(chǔ)上,將程序修改為 Spring框架程序
舉例:01-primay
首先,導(dǎo)入 Spring 程序開發(fā)的四個基本 jar 包。
日志:http://commons.apache.org/proper/commons-logging/download_logging.cgi
其次,導(dǎo)入日志相關(guān)的 Jar 包。commons.logging.jar 該文件只是日志記錄的實(shí)現(xiàn)規(guī)范,并沒有具體的實(shí)現(xiàn)(相當(dāng)于日志操作的接口定義)。
這里日志的實(shí)現(xiàn)使用 log4j,故還需要 log4j.jar。
最后,導(dǎo)入 JUnit 測試 Jar 包 junit-4.9.jar。
Spring 基本編程,共需 7 個 Jar 包即可。
Spring配置文件的文件名可以隨意,但Spring建議的名稱為applicationContext.xml。文件約束在%SPRING_HOME%\docs\spring-framework-reference\html\xsd-configuration.html文件中。
注意,Spring 配置文件中使用的約束文件為 xsd 文件。若 Eclipse 中沒有自動提示功能,則需要將約束要查找的域名地址指向本地的 xsd 文件。相應(yīng)的 xsd 文件在 Spring 框架解壓目錄下的 schema 目錄的相應(yīng)子目錄中。
約束文件:xsd(xml schema definition) xml 文檔結(jié)構(gòu)定義。
作用:驗(yàn)證 xml 文檔的邏輯結(jié)構(gòu)是否正確。
● 定義一個 xml 文檔中都有什么元素
● 定義一個 xml 文檔中都有什么屬性
● 定義一個 xml 文檔中元素可以有哪些子元素,以及元素的順序。
● 定義一個 xml 文檔中元素和屬性的數(shù)據(jù)類型。
這里需要的是 spring-beans.xsd 約束文件,故需要在 beans 子目錄中查找相應(yīng)版本的約束文件。
<bean />:用于定義一個實(shí)例對象。一個實(shí)例對應(yīng)一個 bean元素。
id:該屬性是 Bean 實(shí)例的唯一標(biāo)識,程序通過 id 屬性訪問 Bean,Bean 與 Bean 間的依賴關(guān)系也是通過 id 屬性關(guān)聯(lián)的。
class:指定該 Bean 所屬的類,注意這里只能是類,不能是接口。
先拷貝約束文件的 url 地址, 然后點(diǎn)擊 Eclipse 的 windows 菜單下面的 Perferences
ApplicationContext 用于加載 Spring 的配置文件,在程序中充當(dāng)“容器”的角色。其實(shí)現(xiàn)類有兩個。通過 Ctrl +T 查看:
A、配置文件在類路徑下
若 Spring 配置文件存放在項(xiàng)目的類路徑下,則使用 ClassPathXmlApplicationContext 實(shí)現(xiàn)類進(jìn)行加載。
B、 配置文件在本地目錄中
若 Spring 配置文件存放在本地磁盤目錄中,則使用 FileSystemXmlApplicationContext 實(shí)現(xiàn)類進(jìn)行加載。
C、 配置文件在項(xiàng)目根路徑下
若 Spring 配置文件存放在項(xiàng)目的根路徑下,同樣使用 FileSystemXmlApplicationContext 實(shí)現(xiàn)類進(jìn)行加載。
下面是存放在項(xiàng)目根路徑下的情況,該配置文件與 src 目錄同級,而非在 src 中。
D、ApplicationContext 容器中對象的裝配時機(jī)
ApplicationContext 容器,會在容器對象初始化時,將其中的所有對象一次性全部裝配好。以后代碼中若要使用到這些對象,只需從內(nèi)存中直接獲取即可。執(zhí)行效率較高。但占用內(nèi)存。