Understand the package structure of Spring release will help us reduce the size of packets, but also help to increase understanding of Spring framework.

spring.jar is released module contains a complete package of a single jar. But does not include mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar.

All spring-src.zip is the source code package.

In addition to spring.jar document, Spring also includes 21 other independent jar packages, each containing the corresponding components of Spring, the user can according to their own needs to select the combination of its own jar package, without having to introduce all of the spring.jar class file.

spring-core.jar

The Spring framework jar file contains the core of the basic tools. Spring to have to use other components to this type of bag is the other components of the basic core, of course, you can in their own applications to use these tools.
External dependence Commons Logging, (Log4J).

spring-beans.jar

The jar file is to be used in all applications, which includes access to configuration files, the creation and management of bean and the Inversion of Control / Dependency Injection (IoC / DI) for all types of operations. If the application only basic IoC / DI support the introduction of spring-core.jar and spring-beans.jar file it.
Dependence on external spring-core, (CGLIB).

spring-aop.jar

This jar file contains the application to use Spring's AOP features required for the class and source-level metadata support. AOP in Spring-based features such as statement-based Management (Declarative Transaction Management), but also in the application package contains the jar.
Dependence on external spring-core, (spring-beans, AOP Alliance, CGLIB, Commons Attributes).

spring-context.jar

The jar files for Spring provides a large-scale expansion of the core. Spring ApplicationContext can be found using all the necessary characteristics of type, JDNI all types of requirements, instrumentation components, and check the relevant category Validation.

Dependence on external spring-beans, (spring-aop).

spring-dao.jar

Jar file contains the Spring DAO, Spring Transaction for all types of data access. In order to support the use of statement-based services, they need their own application contains spring-aop.jar.

Dependence on external spring-core, (spring-aop, spring-context, JTA API).

spring-jdbc.jar

This jar file contains the Spring of JDBC for data access for all types of packaging.

Dependence on external spring-beans, spring-dao.

spring-support.jar

Jar file contains the support of the UI template (Velocity, FreeMarker, JasperReports), e-mail services, scripting services (JRuby), Cache Cache (EHCache), Task Scheduler Scheduling (uartz) aspects of the class.

Dependence on external spring-context, (spring-jdbc, Velocity, FreeMarker, JasperReports, BSH, Groovy, JRuby, Quartz, EHCache)

spring-web.jar

This jar file contains the Web application development, the Spring framework to use the core categories, including auto-loading characteristics of the Web Application Context category, Struts and JSF integration categories, file upload support category, Filter-type and a large number of tools supporting category.

Dependence on external spring-context, Servlet API, (JSP API, JSTL, Commons FileUpload, COS).

spring-webmvc.jar

This jar file contains the Spring MVC framework for all categories. Including the framework for Servlets, Web MVC framework support for controller and view. Of course, if your application uses the MVC framework for an independent, you do not need the JAR file of any type.
Dependence on external spring-web, (spring-support, Tiles, iText, POI).

spring-portlet.jar

spring of their own to achieve a similar framework for Spring MVC. MVC framework and includes a controller.

Dependence on external spring-web, Portlet API, (spring-webmvc).

spring-struts.jar

Struts framework support, more convenient and more easily can be integrated Struts framework.

Dependence on external spring-web, Struts.

spring-remoting.jar
This jar file contains support for EJB, remoting Remoting (RMI, Hessian, Burlap, Http Invoker, JAX-RPC) the type of connection.
Dependence on external spring-aop, (spring-context, spring-web, Hessian, Burlap, JAX-RPC, EJB API).

spring-jmx.jar

This package provides the jar on the type of JMX 1.0/1.2 support.

Dependence on external spring-beans, spring-aop, JMX API.

spring-jms.jar

This jar package provides support for JMS 1.0.2/1.1 category.

Dependence on external spring-beans, spring-dao, JMS API.

spring-jca.jar

Support for JCA 1.0.

Dependence on external spring-beans, spring-dao, JCA API.

spring-jdo.jar

For JDO 1.0/2.0 support.

Dependence on external spring-jdbc, JDO API, (spring-web).

spring-jpa.jar

Support for JPA 1.0.

Dependence on external spring-jdbc, JPA API, (spring-web).

spring-hibernate2.jar

The support of the Hibernate 2.1, is not recommended.

Dependence on external spring-jdbc, Hibernate2, (spring-web).

spring-hibernate3.jar

The support of the Hibernate 3.0/3.1/3.2.

Dependence on external spring-jdbc, Hibernate3, (spring-web).

spring-toplink.jar

TopLink support for the framework.

Dependence on external spring-jdbc, TopLink.

spring-ibatis.jar

Of iBATIS SQL Maps support.

Dependence on external spring-jdbc, iBATIS SQL Maps.

The other two packages.

spring-mock.jar

Spring of this jar file contains a set of categories to support the application of mock testing. Spring test suite used by the large number of mock category that such testing is even more simple. Analog-type HttpServletRequest and HttpServletResponse unit testing in the Web application is very convenient. And provide support for JUnit.

Dependence on external spring-core.

spring-aspects.jar

AspectJ provides support so that it can be convenient functions for integration into the IDE, such as Eclipse AJDT.

spring-agent.jar

Spring of InstrumentationSavingAgent (for InstrumentationLoadTimeWeaver), a device agent package, can refer to the Instrumentation features JDK1.5 for more information.

External dependencies none (for use at JVM startup: "-javaagent: spring-agent.jar").

spring-tomcat-weaver.jar

Extension of Tomcat's ClassLoader, so that it can use the instrumentation (equipment) type.

External dependencies none (for deployment into Tomcat's "server / lib" directory).

If you need to use the JSP language as Spring's web MVC tags parameters, you need to support JSP 2.0. Or select Jakarta's JSTL (standard.jar).

How to choose a package of these releases, to choose which release package actually quite simple. If you're building a Web application and full use of Spring, so the best use of a single document all of the spring.jar; if you just use a simple application of the Inversion of Control / Dependency Injection (IoC / DI) container, then only spring-core.jar and spring-beans.jar can; If you release the size of the demanding, so you must choose, and only needed to check their properties included in jar file. The release of an independent package you can avoid the application of their own do not need to include all categories.