Spring的作者是“J2EE實(shí)用主義”倡導者。簡(jiǎn)單、實(shí)用也是Spring的追求目標。Spring是從實(shí)際開(kāi)發(fā)中抽取的框架,具有高度的復用性。Spring涵蓋了大多數應用系統開(kāi)發(fā)涉及的技術(shù)范疇,包括MVC、ORM以及遠程訪(fǎng)問(wèn)等,Spring對這些技術(shù)進(jìn)一步封裝和抽象,使開(kāi)發(fā)過(guò)程更加簡(jiǎn)單、清晰。
Spring完成了實(shí)際開(kāi)發(fā)中需要實(shí)現的設計模式:工廠(chǎng)和單態(tài)。使用Spring將意味著(zhù):開(kāi)發(fā)者無(wú)須自己提供單態(tài)和工廠(chǎng)模式的實(shí)現。
Java語(yǔ)言本身是跨平臺的,Spring也是跨平臺的。但Spring需要有JDK的開(kāi)發(fā)環(huán)境,Spring支持1.3以上的各種JDK版本。筆者所用的代碼全部在JDK1.4上測試通過(guò),因此建議讀者安裝JDK1.4版本。
Web服務(wù)器則采用Tomcat5.0.28。
為了輔助編譯和運行程序,筆者開(kāi)發(fā)過(guò)程中也使用到Ant工具,筆者所用的版本是1.6.5。
筆者也給出Spring在Eclipse里的安裝和使用。Eclipse建議使用3.1以上版本。
JDK的安裝此處不再贅述,此處略述Tomcat和Ant的安裝。
安裝Tomcat和Ant的前提是:成功安裝、配置JDK的開(kāi)發(fā)環(huán)境。
(1)到HTUhttp://tomcat.apache.orgUTH下載Tomcat合適的版本,如果使用JDK1.4,則建議使用Tomcat5.0.x系列,而不是使用Tomcat5.5.x系列。
(2)Windows平臺下載zip包,Linux下載tar包。
(3)解壓縮剛下載到的壓縮包,將解壓縮后的文件夾放到任意路徑下。
(4)然后增加JAVA_HOME環(huán)境變量,讓該變量指向JDK的安裝路徑。
注意:Spring并不依賴(lài)于任何特定的J2EE應用服務(wù)器,因此安裝Tomcat并不是必需的。所有的Web應用完全可在Tomcat,Resin,WebLogic,WebSphere上運行良好。
Ant的下載和安裝請按如下步驟進(jìn)行。
(1)到http://ant.apache.org下載Ant的最新版。以Ant1.6.5為例,下載后解壓縮會(huì )產(chǎn)生一個(gè)文件夾,修改該文件夾的名字為ant165(不修改亦可,但為了簡(jiǎn)單起見(jiàn),建議修改),然后,將該文件夾放在任意路徑即可。
(2)增加環(huán)境變量ANT_HOME,該環(huán)境變量指向剛才ant165文件夾所在的全限定路徑。
(3)修改環(huán)境變量path,為path增加%ANT_HOME%/bin路徑即可。
經(jīng)過(guò)上面步驟,Ant安裝成功。
在筆者成書(shū)之時(shí),Spring主要有兩個(gè)版本:
q 產(chǎn)品化的1.2.7的穩定發(fā)布版
q 開(kāi)發(fā)者使用的2.0 m4版
對于普通的學(xué)習者,建議使用產(chǎn)品化的穩定版。
到http://www.springframework.org下載Spring的最新穩定版。建議下載spring-framework-1.2.7-with-dependencies.zip包,該壓縮包不僅包含Spring的開(kāi)發(fā)包,而且包含Spring編譯和運行所依賴(lài)的第三方類(lèi)庫。
解壓縮下載到的壓縮包,解壓縮后的文件夾下應有如下幾個(gè)文件夾:
q dist:該文件夾下放Spring的jar包,通常只需要spring.jar文件即可。該文件夾下還有一些類(lèi)似spring-Xxx.jar的壓縮包,這些壓縮包是spring.jar壓縮包的子模塊壓縮包。除非確定整個(gè)J2EE應用只需使用Spring的某一方面,才考慮使用這種分模塊壓縮包。通常建議使用spring.jar。
q docs:該文件夾下包含Spring的相關(guān)文檔,包含開(kāi)發(fā)指南,API參考文檔。
q lib:該文件夾下包含Spring編譯和運行所依賴(lài)的第三方類(lèi)庫,該路徑下的類(lèi)庫并不是Spring必需的,但如果需要使用第三方類(lèi)庫的支持,這里的類(lèi)庫就是必需的。
q samples:該文件夾下包含Spring的幾個(gè)簡(jiǎn)單示例,可作為Spring的入門(mén)學(xué)習的案例。
q src:該文件夾下包含Spring的全部源文件,如果開(kāi)發(fā)過(guò)程有地方無(wú)法把握,可以參考該處源文件,了解底層的實(shí)現。
q test:該文件夾下包含Spring的測試用例,它們可作為學(xué)習Spring的入門(mén)代碼。
q tiger:該路徑下存放關(guān)于JDK1.5的相關(guān)內容。
解壓縮后的文件夾下,還包含一些關(guān)于Spring的license和項目相關(guān)文件。
Spring的安裝,筆者將從兩個(gè)方面進(jìn)行介紹:分別介紹IDE工具:Eclipse里的安裝和使用,以及使用Ant工具的開(kāi)發(fā)方式。讀者可根據自己的習慣自由選擇開(kāi)發(fā)方式。
(1)新建一個(gè)Spring項目,命名為myspring,如圖1.1所示:
(2)單擊“Next”按鈕,然后單擊下一個(gè)對話(huà)框中“Finish”按鈕,建立項目成功。
(3)右擊Eclipse左邊導航窗口的“myspring”節點(diǎn),在彈出菜單中選擇“new”菜單項,接著(zhù)出現下一個(gè)菜單,單擊Folder菜單項,如圖1.2所示。在彈出對話(huà)框的“Folder name文本框中輸入lib。然后單擊“OK”按鈕,添加文件夾成功。添加完文件夾的效果如圖1.3所示。


圖1.1 新建myspring的項目 圖1.2 新建文件夾的操作步驟
(4)Spring的二進(jìn)制包被解壓縮后,會(huì )產(chǎn)生一個(gè)dist文件夾,將里面的spring.jar文件復制到lib文件夾下。
(5)右擊左邊導航面板的myspring節點(diǎn),在快捷菜單里選擇“Properties”菜單項,將彈出如圖1.4所示的屬性對話(huà)框。


圖1.3 添加完lib文件夾后的包結構圖 圖1.4 增加用戶(hù)庫的步驟
(6)單擊圖1.4所示屬性對話(huà)框左邊的“Add Library”按鈕,彈出Add Library對話(huà)框的選擇庫類(lèi)型頁(yè)面(如圖1.5所示)。
(7)單擊 “Next”按鈕,出現Add Library對話(huà)框的選擇庫頁(yè)面(如圖1.6所示)。


圖1.5 增加用戶(hù)庫 圖1.6 增加用戶(hù)庫
(8)單擊“User Libraries”按鈕,彈出Preferences對話(huà)框,如圖1.7所示。
(9)完成添加后,Eclipse左邊的導航欄應如圖1.8所示。


圖1.7 新建用戶(hù)庫 圖1.8 增加spring用戶(hù)庫后的包結構圖
(10)因為Spring使用commons-logging.jar和log4j.jar作為日志輸出,因此,也應該將common-logging.jar和log4j.jar增加到用戶(hù)庫文件中??紤]到以后可能使用jakarta-common的各種jar文件,此時(shí),找到Spring解壓縮后lib文件夾下的jakarta-commons,將其下可能需要使用的lib都復制到myspring的lib文件夾下,同時(shí)也將log4j.jar文件復制到該文件夾下。重復第5步到第9步的過(guò)程,完成兩個(gè)用戶(hù)庫的添加,完成用戶(hù)庫添加后的包結構圖如圖1.9所示。

圖1.9 增加完用戶(hù)庫后的包結構圖
(11)為該項目增加log4j.properties文件,用來(lái)控制日志輸出。log4j.properties文件如下:
# rootLogger是所有日志的根日志,修改該日志屬性將對所有日志起作用
#下面的屬性配置中,所有日志的輸出級別是DEBUG,輸出源是標準輸出源:stdout
log4j.rootLogger=DEBUG, stdout
# 定義標準輸出源stdout的輸入位置是控制臺
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# 定義輸出日志的布局采用的類(lèi)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# 定義輸出日志的布局
log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n
(12)編寫(xiě)運行的主程序,主程序的代碼如下
public class Test
{
public static void main(String[] args)
{
//創(chuàng )建Spring的ApplicationContext ,用于測試
ApplicationContext ctx = new FileSystemXmlApplicationContext("beans.xml");
System.out.println(ctx);
}
}
(13)在myspring文件夾內編寫(xiě)簡(jiǎn)單的Spring配置文件,配置文件的內容如下:
<!-- 下面定義XML文件版本,編碼集-->
<?xml version="1.0" encoding="gb2312"?>
<!-- 定義Spring配置文件對應的dtd-->
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<!-- beans是Spring配置文件的根元素-->
<beans>
</beans>
1.2.2.3 使用Ant工具
使用Ant工具的具體步驟如下:
(1)新建一個(gè)文件夾myspring。該文件夾將作為當前項目的根文件夾。
(2)在myspring文件夾下新建文件夾src,該文件夾下存放項目源文件。
(3)在myspring文件夾下新建文件夾classes,該文件夾下存放項目編譯后的類(lèi)文件。
(4)在myspring下新建文件夾lib,lib下存放該項目所需要的類(lèi)庫。
(5)將Spring 解壓縮后dist文件夾下的spring.jar復制到lib文件夾下。
(6)將Spring解壓縮后jakarta-common文件夾下相關(guān)的*.jar文件復制到lib文件夾下。
(7)將Spring解壓縮后log4j文件夾下的log4j-1.2.13.jar文件復制到lib文件夾下。
經(jīng)過(guò)上面7個(gè)步驟,使用Ant工具將可以編譯和運行項目。下面給出Ant編譯和運行的腳本,該腳本文件放在myspring文件夾下:
<?xml version="1.0"?>
<!-- 定義編譯該項目的基本信息-->
<project name="spring" basedir="." default=".">
<!-- 定義編譯和運行該項目時(shí)所需的庫文件 -->
<path id="classpath">
<!-- 該路徑下存放spring.jar和其他第三方類(lèi)庫 -->
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
<!-- 同時(shí),還需引用已經(jīng)編譯過(guò)的class文件-->
<pathelement path="classes"/>
</path>
<!-- 編譯全部的java文件-->
<target name="compile" description="Compile all source code">
<!-- 指定編譯后class文件的存放位置 -->
<javac destdir="classes" debug="true"
deprecation="false" optimize="false" failonerror="true">
<!-- 指定需要編譯的源文件的存放位置 -->
<src path="src"/>
<!-- 指定編譯這些java文件時(shí)需要的類(lèi)庫位置-->
<classpath refid="classpath"/>
</javac>
</target>
<!-- 運行特定的主程序 -->
<target name="run" description="run the main class" depends="compile">
<!-- 指定運行的主程序:lee.BeanTest。-->
<java classname="lee.BeanTest" fork="yes" failonerror="true">
<!-- 指定運行這些java文件時(shí)需要的類(lèi)庫位置-->
<classpath refid="classpath"/>
</java>
</target>
</project>
該項目的主程序與采用Eclipse編寫(xiě)的主程序代碼相比完全一樣,log4j.properties文件沒(méi)有任何區別。采用兩種工具的執行效果也完全一樣。
聯(lián)系客服