Windows環境下Spring的下載與安裝
一、Spring的簡介
Spring官網改版後,很多專案的完整zip包下載連結已經隱掉了,雖然Spring旨在引導大家用更“高大上”的maven方式來管理所依賴的jar包,但是完全沒想到中國的國情,在偉大的牆內,直接通過maven下載牆外的東西,要麼龜速,要麼直接被和諧。
下面是從網上搜集的一些方法,可用於一次性下載Spring各專案的完整dist.zip
Spring官網:http://spring.io/
二、下載的壓縮包的目錄解釋
解壓縮下載到的壓縮包,解壓縮後的資料夾應用如下幾個資料夾。
- dist:該資料夾下放Spring的jar包,通常只需要Spring.jar檔案即可。該資料夾 下還有一些類似spring-Xxx.jar的壓縮包, 這些壓縮包是spring.jar壓縮包的子模組壓縮包。除非確定整個J2EE應用只需要使用Spring的某一方面時,才考慮使用這種分模組壓縮包。通 常建議使用Spring.jar
- docs:該資料夾下包含spring的相關文件、開發指南及API參考文件。
- lib:該資料夾下包含spring編譯和執行所依賴的第三方類庫,該路徑下的類庫並不是spring必需的,但如果需要使用第三方類庫的支援,這裡的類庫就是必需要的。
- samples:該資料夾下包含Spring的幾個簡單例子,可作為Spring入門學習的案例。
- src:該資料夾下包含Spring的全部原始檔,如果開發過程中有地方無法把握,可以參考該原始檔,瞭解底層實現。
- test:該資料夾下包含Spring的測試示例。
- tiger:該路徑下存放關於JDK的相關內容
解壓縮後的資料夾下,還包含一些關於Spring的License和專案相關檔案
三、下載和安裝Spring請按如下步驟進行。
- 登入站點,下載Spring的最新穩定版本。最新版本為spring-framework-4.0.建議下載spring-framework-spring-framework-4.0.0.M2-dist這個壓縮包不僅包含Spring的開發包,而且包含Spring編譯和執行所依賴的第三方類庫。
- 將spring.jar複製到專案的CLASSPATH路徑下,對於Web應用,將spring.jar檔案複製到WEB-INF/lib路徑下,該應用即可以利用Spring框架了。
- 通常Spring的框架還依賴於其他一些jar檔案,因此還須將lib下對應的包複製到WEB-INF/lib路徑下,具體要複製哪些jar檔案,取決於應用所需要使用的專案。通常需要複製cglib,dom4j,jakarta-commons,log4j等資料夾下的jar檔案。
- 為了編譯java檔案,可以找到Spring的基礎類,將Spring.jar檔案的路徑新增到環境變數CLASSPATH中。當然,也可以使用ANT工具,但無須新增環境變數。如果使用Eclipse或者NetBeans等IDE時,也不需要設定環境變數。
四、下載方式的介紹
第一種
1.Spring各個版本的下載地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/
2.直接下載
spring下載:http://repo.springsource.org/libs-release-local/org/springframework/spring/4.3.8.RELEASE/spring-framework-4.3.8.RELEASE-dist.zip
spring-security下載:http://repo.spring.io/libs-release-local/org/springframework/security/spring-security/3.2.3.RELEASE/spring-security-3.2.3.RELEASE-dist.zip
直接粘到位址列或者下載工具裡,每次有更新只要改版本號就可以;
第二種
http://repo.springsource.org/libs-release-local/
把這個粘到位址列裡,你會看到一個樹型目錄,然後就是一級一級往下點了;
第三種
你要在官網的projects裡找到spring framework,然後左側的"小貓"圖示,跳到github,在Downloading artifacts下面 找到 building a distribution with dependencies的超鏈,進去後再找 到 the SpringSource repository的超鏈,接著開啟Spring repository FAQ後,找到libs- release-local,進去後點Artifacts頁籤,再在左邊的列表裡先simple brower,後面的流程和第二步一樣。(不過,Github在牆內很不穩定,你懂的。。。)
第四種
http://repo.spring.io/webapp/search/artifact/?0&q=spring-framework 或http://repo.spring.io/webapp/search/artifact/?0&q=spring-security把q後的關鍵字換成Spring子專案的名稱即可
Spring這類的框架給我們開發帶來非常大的好處,讓我們更加快速、有效的開發。
所以我們在開發中通常都會用到各種框架,每個框架都有很多jar包,每個jar都有各自不同的功能。開發不同的功能用到的jar也不盡相同,所以當我們用到相關框架的時候,並不是把它所有的jar都引入系統。那麼怎麼確定自己將會用到框架中的哪些jar包呢?
這就需要我們知道框架中每個jar都是幹什麼的。
我們先來看看spring 4.3.8 的 jar 包
- spring-aop-4.3.8.RELEASE.jar:這個jar檔案包含在應用中使用Spring的 AOP特性時所需的類。使用基於AOP的Spring特性,如宣告型事務管理(Declarative Transaction Management),也要在應用裡包含這個jar包。spring 的面向切面程式設計,提供AOP(面向切面程式設計)實現。
- spring-aspects-4.3.8.RELEASE.jar:Spring整合了aspectjrt.jar,也可以使用aspectjrt.jar來代替。
- spring-beans-4.3.8.RELEASE.jar:SpringIoC(依賴注入)的基礎實現,所有應用都要用到的,它包含訪問配置檔案、建立和管理bean以及進行Inversion of Control / Dependency Injection(IoC/DI)操作相關的所有類。
- spring-build-src-4.3.8.RELEASE.jar
- spring-context-4.3.8.RELEASE.jar:spring 提供在基礎 IoC 功能上的擴充套件服務,此外還提供許多企業級服務的支援,如 郵件服務、任務排程、JNDI定位、EJB 整合、遠端訪問、 快取以及各種檢視層框架的封裝等。
- spring-context-support-4.3.8.RELEASE.jar:spring-context 的擴充套件支援,包含支援快取Cache(ehcache)、JCA、JMX、郵件服務(Java Mail、COS Mail)、任務計劃Scheduling(Timer、Quartz)方面的類。
- spring-core-4.3.8.RELEASE.jar:包含Spring框架基本的核心工具類,Spring其它元件要都要使用到這個包裡的類,是其它元件的基本核心。
- spring-expression-4.3.8.RELEASE.jar:spring 表示式語言。
- spring-framework-bom-4.3.8.RELEASE.jar
- spring-instrument-4.3.8.RELEASE.jar:spring4.3.8 對伺服器的代理介面。
- spring-instrument-tomcat-4.3.8.RELEASE.jar:spring4.3.8 對 Tomcat 的連線池的基成。
- spring-jdbc-4.3.8.RELEASE.jar:包含對Spring對JDBC資料訪問進行封裝的所有類。
- spring-jms-4.3.8.RELEASE.jar:提供了對JMS 1.0.2/1.1的支援類。
- spring-orm-4.3.8.RELEASE.jar:包含Spring對DAO特性集進行了擴充套件,使其支援 iBATIS、JDO、OJB、TopLink,因為Hibernate已經獨立成包了,現在不包含在這個包裡了。這個jar檔案裡大部分的類都要依賴spring-dao.jar裡的類,用這個包時你需要同時包含spring-dao.jar包 。
- spring-oxm-4.3.8.RELEASE.jar:spring 對Object/XMI 的對映的支援,可以讓JAVA與XML之間來回切換。
- spring-struts-4.3.8.RELEASE.jar:整合 Struts 的支援。
- spring-test-4.3.8.RELEASE.jar:spring 對Junit 等測試框架的簡單封裝。
- spring-tx-4.3.8.RELEASE.jar:為JDBC、Hibernate、JDO、JPA等提供的一致的宣告式和程式設計式事務管理。
- spring-web-4.3.8.RELEASE.jar:包含Web應用開發時,用到Spring框架時所需的核心類,包括自動載入WebApplicationContext特性的類、Struts與JSF整合類、檔案上傳的支援類、Filter類和大量工具輔助類。
- spring-webmvc-4.3.8.RELEASE.jar:這個jar檔案包含Spring MVC框架相關的所有類。包含國際化、標籤、Theme、檢視展現的FreeMarker、JasperReports、Tiles、Velocity、 XSLT相關類。當然,如果你的應用使用了獨立的MVC框架,則無需這個JAR檔案裡的任何類。
- spring-webmvc-portlet-4.3.8.RELEASE.jar:springMVC 的增強,支援portlet標準(JSR168/JSR286)
如何選擇jar包,除了要了解每個jar的用途以外,還要了解jar包與jar包之間的依賴關係。有些jar包是其它jar包的基礎,而有些jar則需要依賴於其它jar包才能工作。那麼Spring裡jar包是怎樣一個依賴關係呢?
- spring-core.jar依賴commons-collections.jar。
- spring-beans.jar依賴spring-core.jar,cglib-nodep-2.1_3.jar
- spring-aop.jar依賴spring-core.jar,spring-beans.jar,cglib-nodep-2.1_3.jar,aopalliance.jar
- spring-context.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar
- spring-dao.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring-context.jar
- spring-jdbc.jar依賴spring-core.jar,spring-beans.jar,spring-dao.jar
- spring-web.jar依賴spring-core.jar,spring-beans.jar,spring-context.jar
- spring-webmvc.jar依賴spring-core.jar/spring-beans.jar/spring-context.jar/spring-web.jar
- spring -hibernate.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-orm.jar,spring-web.jar,spring-webmvc.jar
- spring-orm.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-web.jar,spring-webmvc.jar
- spring -remoting.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-context.jar,spring-web.jar,spring-webmvc.jar
- spring-support.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
- spring-mock.jar依賴spring-core.jar,spring-beans.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
- spring-core.jar是spring的核心包,其它所有jar包都依賴於它。