1. 程式人生 > >Spring1:Spring簡介、環境搭建、源碼下載及導入MyEclipse

Spring1:Spring簡介、環境搭建、源碼下載及導入MyEclipse

下載源 xml文件 lips csdn 切換 命令 硬編碼 結合 xmlns

轉自:Spring1:Spring簡介、環境搭建、源碼下載及導入MyEclipse

框架學習前言

這個模塊是面向Spring的,Spring的學習我是這麽想的:

1、簡單介紹Spring,主要是從網上借鑒一些重點

2、盡量說明清楚Spring的使用方法以及細節點

3、盡量以自己的理解講清楚Spring中的一些源代碼

Spring是什麽

Spring是一款為了解決企業應用開發的復雜性而創建的輕量級Java框架。框架的主要優勢之一就是其分層架構,分層架構允許使用者選擇哪一個組件,同時為J2EE應用程序開發提供集成的框架。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益,Spring的核心是控制反轉IOC

面向切面AOP

Spring的特征

1、輕量

從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1M多的JAR文件裏發布,並且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型的,Spring應用中的對象不依賴於Spring的特定類。

2、控制反轉

Spring通過一種稱作控制反轉IOC的技術促進了低耦合。當應用了IOC,一個對象依賴的其他對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。

3、面向切面

Spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務進行內聚性的開發。應用程序只實現它們應該做的----完成業務邏輯,僅此而已,它們並不負責(甚至意識不到)其它的系統級關註點,例如日誌或事物支持。

4、容器

Spring包含並管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建----基於一個可配置原型,你的bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例----以及它們是如何相互關聯的。

5、框架

Spring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型的是在一個XML文件裏。Spring也提供了很多基礎功能(事務管理、持久化框架集成等),將應用邏輯的開發留給開發者。

所有Spring的這些特征使得開發者能夠編寫更幹凈、更可管理、更易於測試的代碼,它們也為Spring中的各種模塊提供了基礎支持。

Spring的特點

1、方便解耦,簡化開發

通過Spring提供的IOC容器,我們可以將對象之間的依賴關系交由Spring進行控制,避免硬編碼所造成的過度耦合。有了Spring,用戶不必再為單實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專註於上層的應用。

2、AOP編程的支持

通過Spring提供的AOP功能,方便進行面向切面的編程,許多不容易用傳統OOP實現的功能可以通過AOP輕松應付。

3、聲明式事物的支持

在Spring中,我們可以從單調煩悶的事務管理代碼中解脫出來,通過聲明式靈活地進行事物的管理,提高開發效率和質量。

4、方便集成各種優秀框架

Spring不排斥各種優秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優秀框架如Structs、Hibernate、Hessian、Quartz等的直接支持。

5、降低Java EE API的使用難度

Spring對很多難用的Java EE API(如JDBC、JavaMail、RMI等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些Java EE API的使用難度大為降低

6、Java源碼是經典學習範例

Spring的源碼設計精妙、結構清晰、獨具匠心,處處體現著對Java設計模式靈活運用以及對Java技術的高深造詣。Spring框架源碼無疑是Java技術的最佳實踐範例,如果想在短時間內迅速提高自己的Java技術水平和應用開發水平,學習和研究Spring的源碼將使你獲益匪淺。

Spring下載

Spring相關信息可以去Spring官網查看,不過都是全英文版本的。

Spring目前的最新版本是4.2.2,點擊鏈接下載,解壓後應該是這樣的:

技術分享圖片

介紹一下每個文件夾:

1、docs下是Spring相關資料,包括一個官方的英文版的資料《spring-framework-reference.pdf》以及網頁版本的Spring API,上面有所有的Spring類與方法相關信息,就和JDK API一樣

2、libs下包括了Spring所有jar包,註意一下"*.javadoc.jar"和"*.sources.jar"結尾的都是每個模塊Spring提供的一些輔助文檔而已,並不是真正要用的jar包的內容

3、schema裏面是Spring每個組件、每個版本的.xsd文件,用來設置.xml文件自動提示用的

Spring環境搭建以及.xml文件自動提示設置

為了後面的學習,這裏講解一下如何搭建一個Spring框架以及如何為.xml文件設置Spring標簽及相應屬性的自動提示:

1、右鍵工程->Build Path->Configure Build Path...,選擇Add External JARs...,導入所有libs下的jar包(如果只用bean工廠的功能其實不全部導入也行)

2、我們知道,Spring的使用是通過寫配置文件的,所以右鍵src->new->File,隨便命名,以xml結尾即可

3、xml文件裏面寫入,這是最基礎的模板,往後所有功能都在這個模板上擴展:

技術分享圖片
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
    
</beans>
技術分享圖片

4、點擊Window->Preferences->MyEclipse->Files and Editors->XML->XML Catalog->Add->File System...,選擇解壓後的目錄Schema文件夾,beans目錄下的spring-beans-4.2.xsd,其實選任何一個版本的.xsd都可以,只要和你的Spring的.xml文件裏面那個版本號對應就可以了

5、Key Type選擇"Schema Location",key填"http://www.springframework.org/schema/beans/spring-beans-4.2.xsd",也就是.xml文件裏面的那個路徑

6、點擊OK即可,之後配置Spring別的功能比如aop、context、jdbc什麽的XML提示也可以用類似的方法,.xml裏面配置一個地址,XML Catalog裏面添加一個XML Catalog Entry

Spring日誌系統搭建

Spring采用Apache common_logging,並結合Apache log4j作為日誌輸出組件,為了在調試過程中可以觀察到Spring的日誌輸出,請先下載common_logging和log4j兩個jar包,不知道最新的兩個jar包是什麽版本的,我用的是比較老的,以前就下載的:

技術分享圖片

下載了之後請確保你的CLASSPATH下有這兩個jar包。有了這兩個jar包之後,右鍵src,新建一個"log4j.properties"文件,配置如下:

log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n

這樣,在使用Spring的過程中,你就可以看到Spring的日誌輸出了。

Spring源碼下載及導入MyEclipse

既然我們的要學習源代碼,那勢必要獲取Spring的源碼。Spring的源碼是通過GitHub進行管理的,下載Spring源碼並導入MyEclipse需要兩樣工具:

1、GitHub,點我

2、Gradle,點我,註意下載安裝完Gradle要創建GRADLE_HOME系統變量,並將這個系統變量加入到path中,就和JDK一樣,這個不會的可以上網查一下,安裝完進入cmd,輸入命令"gradle -version",打印出gradle的版本信息就表示gradle可以用了

GitHub和Gradle都安裝完畢之後,分兩步:

1、使用GitHub下載源碼

首先下載安裝這兩個工具,OK之後,GitHub的bin目錄下雙擊"tclsh85.exe",就跟使用cmd一樣的,先隨便找一個想要下載到的目錄,使用"git clone git://github.com/SpringSource/Spring-framwwork.git"下載Spring源代碼,如圖:

技術分享圖片

下載完畢應該是:

技術分享圖片

2、當前下載的源碼並不能直接導入MyEclipse中,我們還需要將源碼轉換為MyEclipse認識的形式,所以這時候就要用Gradle了。cmd進入命令窗口,切換至下載Spring源碼所在的目錄,我們想要把哪個模塊的源碼轉成MyEclipse的就操作哪個文件夾,具體方式為:

技術分享圖片

轉換完畢應該是:

技術分享圖片

此時我們看一下文件夾下的spring-beans目錄:

技術分享圖片

這就是MyEclipse認識的形式,直接Import進入MyEclipse,當然這個時候項目上有紅色感嘆號,表示工程有錯,錯誤在:技術分享圖片

技術分享圖片

用一樣的方式把spring-core轉一下導入源碼工程就好了。另外,spring-cglib-repack-3.1.jar和spring-objenesis-repack-2.2.jar報錯的問題,上網找一下這兩個jar包下載並導入就好了,我是在CSDN上下載的。

參考資料:

Spring系列之基本配置

Spring1:Spring簡介、環境搭建、源碼下載及導入MyEclipse