<properties>
    <spring.version>4.0.5.RELEASE</spring.version>
  </properties>


  <dependencies>
    <!--spring-core.jar,这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,
        是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!--spring-beans.jar,这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control/Dependency Injection(IoC/DI)
        操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core.jar及spring-beans.jar文件就可以了。-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!--spring-context.jar,这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,
        UI方面的用来与模板(Templating)引擎如Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!--spring-support.jar,这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)
        方面的类。-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- 这个jar 文件包含在应用中使用Spring 的AOP特性时所需的类和源码级元数据支持。使用基于AOP的Spring特性,
           如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- 这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,
          包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- 提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- 为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- 这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!--对JUNIT等测试框架的简单封装 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
        <scope>test</scope>
    </dependency>

    <!--这个jar 文件包含Spring MVC 框架相关的所有类。包括框架的Servlets,Web MVC框架,
        控制器和视图支持。当然,如果你的应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类。 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
 </dependencies>

1.spring-aop-3.2.2.jar
包含在应用中使用spring的aop特性时所需的类。使用注解必需

2.spring-aspects-3.2.2.jar
提供对aspectj的支持,以便可以方便的将面向切面的功能集成进ide中,实现springaop必需

3.spring-beans-3.2.2.jar
springioc(依赖注入)的基础实现,所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行inversion of control / dependency injection(ioc/di)操作相关的所有类。但是这个是个基础实现,一般我们在实际的开发过程中很少直接用到,它是对起到支撑作用的。

4.spring-context-3.2.2.jar
为spring核心提供了大量扩展。可以找到使用spring applicationcontext特性时所需的全部类,jdni所需的全部类,ui方面的用来与模板(templating)引擎如 velocity、freemarker、jasperreports集成的类,以及校验validation方面的相关类,还有ejb,cache,format,jms等等。

5.spring-context-support-3.2.2.jar
spring-context 的扩展支持,用于 mvc 方面

6.spring-core-3.2.2.jar
spring的核心包,包含spring框架基本的核心工具类,spring其它组件要都要使用到这个包里的类,是其它
组件的基本核心。包括asm,cglib以及相关的工具类

7.spring-expression-3.2.2.jar
spring表达式语言。

8.spring-instrument-3.2.2.jar
spring对服务器的代理接口。

9.spring-instrument-tomcat-3.2.2.jar
spring对tomcat连接池的集成。

10.spring-jdbc-3.2.2.jar
spring对jdbc的简单封装

11.spring-jms-3.2.2.jar
spring对jms(java message service)的封装,为了简化对jms api的使用

12.spring-orm-3.2.2.jar
包含spring对dao特性集进行了扩展,使其支持 ibatis、jdo、ojb、toplink,因为hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar包。spring 整合第三方的 orm 映射支持,如 hibernate 、ibatis、jdo 以及spring的jpa的支持。

13.spring-oxm-3.2.2.jar
spring 对object/xmi 的映射的支持,可以让java与xml之间来回切换。

14.spring-struts-3.2.2.jar
struts框架支持,可以更方便更容易的集成struts框架。

15.spring-test-3.2.2.jar
spring对junit框架的简单封装。

16.spring-tx.3.2.2.jar
spring提供对事务的支持,事务的相关处理以及实现类就在这个jar包中

17.spring-web-3.2.2.jar
包含web应用开发时,用到spring框架时所需的核心类,包括自动载入webapplicationcontext特性的类、struts与jsf集成类、文件上传的支持类、filter类和大量工具辅助类。

18.spring-webmvc-3.2.2.jar
spring mvc相关,实现springmvc的操作。

19.spring-webmvc-portlet-3.2.2.jar
spring mvc的增强扩展

下图为web和webmvc依赖树:

 其实pom中引入webmvc包,项目中就可以自动引入涉及IoC和AOP的包。

pom中引入orm包,就可以引入jdbc包。

02-12 10:21