Spring has upgrade their website as
spring.ioAnd the download of zip files has become a bit confusion.
Base on
You now have to download the zip files form their repository, as stated here:
https://github.com/spring-projects/spring-framework/wiki/Downloading-Spring-artifacts
(statement at the bottom of the page).
Download cannot proceed without account/login, so I decide to the below page and download jar by jar.
mvnrepository.com/artifact/org.springframework
When come to "spring-security-core", I question myself that how I can get all dependent jar files.
With this question, I find the direct link to download the whole zip file:
http://repo.spring.io/release/org/springframework/spring
or
https://github.com/spring-projects/spring-framework/releases
Also, there is another DIY solution from Spring website
https://github.com/spring-projects/spring-framework/wiki/Downloading-Spring-artifacts
(statement at the bottom of the page).
Also, some folks are already provided the detailed steps:
The solution I prefer is using Maven, it is easy and you don't have to download each jar alone. you can do it with the following steps:
1. Create an empty folder in anywhere with any name you prefer, for example spring-source
2. Create a new file named pom.xml
3. Copy the following in this file
4. Open the spring-source folder in your console
5. Run mvn install
6. After download finished, you'll find spring jars in /spring-source/target/dependencies
Configuration is as below:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>spring-source-download</groupId>
<artifactId>SpringDependencies</artifactId>
<version>1.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>repository.spring.release</id>
<name>Spring GA Repository</name>
<url>http://repo.spring.io/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<!--each dependency refer to
corresponding project under http://spring.io/projects-->
<!--spring-framework-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
<!--spring-security-->
<!--
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
-->
<!--spring-webflow-->
<!--
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-webflow</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>download-dependencies</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory> ${project.build.directory}/dependencies </outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Furthermore,
Also, if you need to download any other spring project, just copy the dependency configuration from its corresponding web page
For example, if you want to download Spring Web Flow jars, go to its web page, and add its dependency configuration to the pom.xml dependencies, then run mvn install again.
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-webflow</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
>>spring.jar 是包含有完整發布模塊的單個jar 包。
但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。
spring-src.zip就是所有的源代碼壓縮包。除了spring.jar 文件,Spring 還包括有其它21 個獨立的jar 包,各自包含著對應的Spring組件,用戶可以根據自己的需要來選擇組合自己的jar 包,而不必引入整個spring.jar 的所有類文件。>>spring-core.jar這個jar 文件包含Spring 框架基本的核心工具類。Spring 其它組件要都要使用到這個包里的類,是其它組件的基本核心,當然你也可以在自己的應用系統中使用這些工具類。
外部依賴Commons Logging, (Log4J)。
>>spring-beans.jar這個jar 文件是所有應用都要用到的,它包含訪問配置文件、創建和管理bean 以及進行Inversion of Control / Dependency Injection(IoC/DI)操作相關的所有類。如果應用只需基本的IoC/DI 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。
外部依賴spring-core,(CGLIB)。
>>spring-aop.jar這個jar 文件包含在應用中使用Spring的AOP 特性時所需的類和源碼級元數據支持。使用基于AOP 的Spring特性,如聲明型事務管理(Declarative Transaction Management),也要在應用里包含這個jar包。
外部依賴spring-core, (spring-beans,AOP Alliance, CGLIB,Commons Attributes)。
>>spring-context.jar這個jar 文件為Spring核心提供了大量擴展。可以找到使用Spring ApplicationContext特性時所需的全部類,JDNI 所需的全部類,instrumentation組件以及校驗Validation 方面的相關類。
外部依賴spring-beans, (spring-aop)。
>>spring-dao.jar這個jar 文件包含Spring DAO、Spring Transaction 進行數據訪問的所有類。為了使用聲明型事務支持,還需在自己的應用里包含spring-aop.jar。
外部依賴spring-core,(spring-aop, spring-context, JTA API)。
>>spring-jdbc.jar這個jar 文件包含對Spring 對JDBC 數據訪問進行封裝的所有類。
外部依賴spring-beans,spring-dao。
>>spring-support.jar這個jar 文件包含支持UI模版(Velocity,FreeMarker,JasperReports),郵件服務,腳本服務(JRuby),緩存Cache(EHCache),任務計劃Scheduling(uartz)方面的類。
外部依賴spring-context, (spring-jdbc, Velocity, FreeMarker, JasperReports, BSH, Groovy, JRuby, Quartz, EHCache)
>>spring-web.jar這個jar 文件包含Web 應用開發時,用到Spring 框架時所需的核心類,包括自動載入Web Application Context 特性的類、Struts 與JSF 集成類、文件上傳的支持類、Filter 類和大量工具輔助類。
外部依賴spring-context, Servlet API, (JSP API, JSTL, Commons FileUpload, COS)。
>>spring-webmvc.jar這個jar 文件包含Spring MVC 框架相關的所有類。包括框架的Servlets,Web MVC框架,控制器和視圖支持。當然,如果你的應用使用了獨立的MVC 框架,則無需這個JAR 文件里的任何類。
外部依賴spring-web, (spring-support,Tiles,iText,POI)。
>>spring-portlet.jarspring自己實現的一個類似Spring MVC的框架。包括一個MVC框架和控制器。
外部依賴spring-web, Portlet API,(spring-webmvc)。
>>spring-struts.jarStruts框架支持,可以更方便更容易的集成Struts框架。
外部依賴spring-web,Struts。
>>spring-remoting.jar這個jar 文件包含支持EJB、遠程調用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的類。
外部依賴spring-aop, (spring-context,spring-web,Hessian,Burlap,JAX-RPC,EJB API)。
>>spring-jmx.jar這個jar包提供了對JMX 1.0/1.2的支持類。
外部依賴spring-beans,spring-aop, JMX API。
>>spring-jms.jar這個jar包提供了對JMS 1.0.2/1.1的支持類。
外部依賴spring-beans,spring-dao,JMS API。
>>spring-jca.jar對JCA 1.0的支持。
外部依賴spring-beans,spring-dao, JCA API。
>>spring-jdo.jar對JDO 1.0/2.0的支持。
外部依賴spring-jdbc, JDO API, (spring-web)。
>>spring-jpa.jar對JPA 1.0的支持。
外部依賴spring-jdbc, JPA API, (spring-web)。
>>spring-hibernate2.jar對Hibernate 2.1的支持,已經不建議使用。
外部依賴spring-jdbc,Hibernate2,(spring-web)。
>>spring-hibernate3.jar對Hibernate 3.0/3.1/3.2的支持。
外部依賴spring-jdbc,Hibernate3,(spring-web)。
>>spring-toplink.jar對TopLink框架的支持。
外部依賴spring-jdbc,TopLink。
>>spring-ibatis.jar對iBATIS SQL Maps的支持。
外部依賴spring-jdbc,iBATIS SQL Maps。
>>spring-mock.jar這個jar 文件包含Spring 一整套mock 類來輔助應用的測試。Spring 測試套件使用了其中大量mock 類,這樣測試就更加簡單。模擬HttpServletRequest 和HttpServletResponse 類在Web 應用單元測試是很方便的。并且提供了對JUnit的支持。
外部依賴spring-core。
>>spring-aspects.jar提供對AspectJ的支持,以便可以方便的將面向方面的功能集成進IDE中,比如Eclipse AJDT。
外部依賴。
WEAVER JARS (dist/weavers)說明:
>>spring-agent.jarSpring的InstrumentationSavingAgent (為InstrumentationLoadTimeWeaver),一個設備代理包,可以參考JDK1.5的Instrumentation功能獲得更多信息。
外部依賴none (for use at JVM startup: "-javaagent:spring-agent.jar")。
>>spring-tomcat-weaver.jar擴展Tomcat的ClassLoader,使其可以使用instrumentation(設備)類。
外部依賴none (for deployment into Tomcat's "server/lib" directory)。
如果需要使用JSP語言作為Spring's web MVC tags的參數,則需要JSP 2.0的支持。或者選擇Jakarta的JSTL (standard.jar)。