一、Spring簡介
Spring官網改版后,很多項目的完整zip包下載鏈接已經隱掉了,雖然Spring旨在引導大家用更“高大上”的maven方式來管理所依賴的jar包,但是完全沒想到中國的國情,在偉大的牆內,直接通過maven下載牆外的東西,要么龜速,要么直接被和諧。
下面是從網上搜集的一些方法,可用於一次性下載Spring各項目的完整dist.zip
Spring官網:http://spring.io/
二、下載的壓縮包的目錄解釋
test:該文件夾下包含Spring的測試示例。
四、下載方式的介紹
第一種
(1)Spring各個版本的下載地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/
(2)直接下載
spring下載:http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.8.RELEASE/spring-framework-3.2.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 3.2.9 的 jar 包。
Spring還包括有其它21 個獨立的jar包,各自包含着對應的Spring組件,我們可以根據自己的需要來選擇組合jar包,接下來我將為大家一一道來。
(1)spring-aop-3.2.9.RELEASE.jar
這個jar文件包含在應用中使用Spring的 AOP特性時所需的類。使用基於AOP的Spring特性,如聲明型事務管理(Declarative Transaction Management),也要在應用里包含這個jar包。
spring 的面向切面編程,提供AOP(面向切面編程)實現。
(2)spring-aspects-3.2.9.RELEASE.jar
Spring整合了aspectjrt.jar,也可以使用aspectjrt.jar來代替。
(3)spring-beans-3.2.9.RELEASE.jar
SpringIoC(依賴注入)的基礎實現,所有應用都要用到的,它包含訪問配置文件、創建和管理bean以及進行Inversion of Control / Dependency Injection(IoC/DI)操作相關的所有類。
(4)spring-build-src-3.2.9.RELEASE.jar
(5)spring-context-3.2.9.RELEASE.jar
spring 提供在基礎 IoC 功能上的擴展服務,此外還提供許多企業級服務的支持,如 郵件服務、任務調度、JNDI定位、EJB 集成、遠程訪問、 緩存以及各種視圖層框架的封裝等。
(6)spring-context-support-3.2.9.RELEASE.jar
spring-context 的擴展支持,包含支持緩存Cache(ehcache)、JCA、JMX、郵件服務(Java Mail、COS Mail)、任務計划Scheduling(Timer、Quartz)方面的類。
(7)spring-core-3.2.9.RELEASE.jar
包含Spring框架基本的核心工具類,Spring其它組件要都要使用到這個包里的類,是其它組件的基本核心。
(8) spring-expression-3.2.9.RELEASE.jar
spring 表達式語言。
(9) spring-framework-bom-3.2.9.RELEASE.jar
(10) spring-instrument-3.2.9.RELEASE.jar
spring3.2.9 對服務器的代理接口。
(11) spring-instrument-tomcat-3.2.9.RELEASE.jar
spring3.2.9 對 Tomcat 的連接池的基成。
(12) spring-jdbc-3.2.9.RELEASE.jar
包含對Spring對JDBC數據訪問進行封裝的所有類。
(13) spring-jms-3.2.9.RELEASE.jar
提供了對JMS 1.0.2/1.1的支持類。
(14) spring-orm-3.2.9.RELEASE.jar
包含Spring對DAO特性集進行了擴展,使其支持 iBATIS、JDO、OJB、TopLink,因為Hibernate已經獨立成包了,現在不包含在這個包里了。這個jar文件里大部分的類都要依賴spring-dao.jar里的類,用這個包時你需要同時包含spring-dao.jar包 。
(15) spring-oxm-3.2.9.RELEASE.jar
spring 對Object/XMI 的映射的支持,可以讓JAVA與XML之間來回切換。
(16) spring-struts-3.2.9.RELEASE.jar
整合 Struts 的支持。
(17) spring-test-3.2.9.RELEASE.jar
spring 對Junit 等測試框架的簡單封裝。
(18) spring-tx-3.2.9.RELEASE.jar
為JDBC、Hibernate、JDO、JPA等提供的一致的聲明式和編程式事務管理。
(19)spring-web-3.2.9.RELEASE.jar
包含Web應用開發時,用到Spring框架時所需的核心類,包括自動載入WebApplicationContext特性的類、Struts與JSF集成類、文件上傳的支持類、Filter類和大量工具輔助類。
(20) spring-webmvc-3.2.9.RELEASE.jar
這個jar文件包含Spring MVC框架相關的所有類。包含國際化、標簽、Theme、視圖展現的FreeMarker、JasperReports、Tiles、Velocity、 XSLT相關類。當然,如果你的應用使用了獨立的MVC框架,則無需這個JAR文件里的任何類。
(21) spring-webmvc-portlet-3.2.9.RELEASE.jar
springMVC 的增強,支持portlet標准(JSR168/JSR286)。
如何選擇jar包,除了要了解每個jar的用途以外,還要了解jar包與jar包之間的依賴關系。有些jar包是其它jar包的基礎,而有些jar則需要依賴於其它jar包才能工作。那么Spring里jar包是怎樣一個依賴關系呢?
1) spring-core.jar依賴commons-collections.jar。
2) spring-beans.jar依賴spring-core.jar,cglib-nodep-2.1_3.jar
3) spring-aop.jar依賴spring-core.jar,spring-beans.jar,cglib-nodep-2.1_3.jar,aopalliance.jar
4) spring-context.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar
5) spring-dao.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring-context.jar
6) spring-jdbc.jar依賴spring-core.jar,spring-beans.jar,spring-dao.jar
7) spring-web.jar依賴spring-core.jar,spring-beans.jar,spring-context.jar
8) spring-webmvc.jar依賴spring-core.jar/spring-beans.jar/spring-context.jar/spring-web.jar
9) 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
10) spring-orm.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-web.jar,spring-webmvc.jar
11) spring -remoting.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-context.jar,spring-web.jar,spring-webmvc.jar
12) spring-support.jar依賴spring-core.jar,spring-beans.jar,spring-aop.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
13) spring-mock.jar依賴spring-core.jar,spring-beans.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
spring-core.jar是spring的核心包,其它所有jar包都依賴於它。