0.Maven构建spring项目(4.3.6.RELEASE)

POM.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.boolib.web</groupId>
  <artifactId>web-ssm</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>web-ssm Maven Webapp</name>
  <url>http://maven.apache.org</url>

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


<!--
    spring确实有自己的AOP。功能已经基本够用了,除非你的要在接口上动态代理或者方法拦截精确到getter和setter。

    这些都是写奇葩的需求,一般不使用。

    1)如果使用xml方式,不需要任何额外的jar包。

    2)如果使用@Aspect方式,你就可以在类上直接一个@Aspect就搞定,不用费事在xml里配了。
    但是这需要额外的jar包( aspectjweaver.jar)。
    因为spring直接使用AspectJ的注解功能,注意只是使用了它 的注解功能而已。并不是核心功能 !!!


-->


  <dependencies>
    <!--测试框架Junit-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <!-- 指定范围,在测试时才会加载 -->
      <scope>test</scope>
    </dependency>



    <!--##########################数据库依赖 start##############################-->


    <!-- 添加mysql驱动依赖 -->
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
    </dependency>


    <!--阿里巴巴druid连接池-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.29</version>
    </dependency>

    <!-- 添加mybatis依赖 -->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.1</version>
    </dependency>

    <!-- 添加mybatis自动生成映射文件依赖 -->
    <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.5</version>
    </dependency>



    <!-- 添加mybatis/spring整合包依赖 -->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>

    <!--##########################数据库依赖 end##############################-->


    <!--##########################spring依赖 start##############################-->


    <!-- spring core 核心 -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    <!--
        包含Spring 框架基本的核心工具类。
        Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
        外部依赖Commons Logging, (Log4J)。
     -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>




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




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




    <!--spring context-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <!--
         这个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 context support -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
    <!--
        包含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(JRuby),缓存Cache(EHCache),
        任务计划Scheduling(uartz)方面的类。
        外部依赖spring-context, (spring-jdbc, Velocity, FreeMarker, JasperReports, BSH, Groovy, JRuby, Quartz, EHCache)
     -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${spring.version}</version>
    </dependency>



    <!-- spring web  -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
    <!--
        含Web 应用开发时,用到Spring 框架时所需的核心类,
        包括自动载入Web ApplicationContext 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。
        外部依赖spring-context, Servlet API, (JSP API, JSTL, Commons FileUpload, COS)。
    -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>




    <!-- spring mvc-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <!--
    这个jar文件包含Spring MVC框架相关的所有类。
    包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。
    当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
    外部依赖spring-web, (spring-support,Tiles,iText,POI)。
    -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>




    <!-- spring tx-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
    <!--
      以前是在这里org.springframework.transaction
      为JDBC、Hibernate、JDO、JPA、Beans等提供的一致的声明式和编程式事务管理支持。
    -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>




    <!-- spring jdbc -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <!--
        这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类。
        外部依赖spring-beans,spring-dao。
    -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>




    <!-- spring El表达式 -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
    <!--
         Spring Expression Language —— 即Spring3中功能丰富强大的表达式语言,简称SpEL。
         SpEL是类似于OGNL和JSF EL的表达式语言,能够在运行时构建复杂表达式,存取对象属性、对象方法调用等。
         所有的SpEL都支持XML和Annotation两种方式,格式:#{ SpEL expression }
    -->

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>${spring.version}</version>
    </dependency>


    <!--##########################spring依赖 end##############################-->







    <!--##########################外部 AOP支持 start############################-->

    <!--Aopalliance-->
    <!-- https://mvnrepository.com/artifact/aopalliance/aopalliance -->
    <!--
      AOP Alliance(http://aopalliance.sourceforge.net/)是个联合的开源协作组织,
      在多个项目间进行协作以期提供一套标准的AOP Java接口(interface)。
      Spring AOP就是基于AOP Alliance标准API实现的。
      如果你打算使用Spring的AOP或基于AOP的任何特性,只需这个JAR文件。
    -->
    <dependency>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- AspectJAop丰富。-->
    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>1.8.9</version>
    </dependency>

    <!-- AOP注解-->
    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
    <!--
      如果使用@Aspect方式,你就可以在类上直接一个@Aspect就搞定,不用费事在xml里配了。
      但是这需要额外的jar包( aspectjweaver.jar)。
      因为spring直接使用AspectJ的注解功能,注意只是使用了它 的注解功能而已。并不是核心功能 !!
    -->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.10</version>
    </dependency>


    <!--##########################外部 AOP支持 end############################-->







    <!--##########################日志相关jar包 start############################-->


    <!-- 添加日志相关jar包 -->
    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>


    <!--##########################日志相关jar包 end############################-->





    <!--##########################commons相关jar包 start########################-->

    <!-- Io 提供依赖-->
    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <!--
      处理IO的工具类包,对java.io进行扩展,提供了更加方便的IO操作。
     -->
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.5</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
    <!--
      提供统一的日志接口,同时兼顾轻量级和不依赖于具体的实现。
      类包给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。
      为spring 提供依赖支持
    -->
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
    </dependency>


    <!--文件上传 -->
    <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
    <!--
     为Web应用程序或Servlet提供文件上传功能,Struts2和SpringMVC的文件上传组件。
     依赖包:Commons IO
    -->
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version>
    </dependency>


    <!-- -->
    <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
    <!--
      Apache开源组织提供的用于摘要运算、编码的包。在该包中主要分为四类加密:BinaryEncoders、DigestEncoders、LanguageEncoders、NetworkEncoders。
      是编码和解码组件,提供常用的编码和解码方法,如DES、SHA1、MD5、Base64、URL和Soundx等。
    -->
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.10</version>
    </dependency>

    <!--##########################Commons相关jar包 end########################-->






    <!--##########################Json相关jar包 start########################-->

    <!-- Jackson核心-->
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <!--
      提供jackson核心支持
    -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.8.9</version>
    </dependency>


    <!-- Jackson注解-->
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
    <!--
      Jackson数据绑定包使用的核心注释,用于值类型。该包提供Json注解支持
    -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.0</version>
    </dependency>



    <!--Jackson数据绑定->
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <!--
      对象序列化支持
    -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.9</version>
    </dependency>

    <!--##########################Json相关jar包 end########################-->






    <!--##########################JSTL相关jar包 start########################-->

    <!-- JSP 标准标签库(JSTL)-->
    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <!--
     JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
     JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。
     除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
     根据JSTL标签所提供的功能,可以将其分为5个类别。
       核心标签
       格式化标签
       SQL 标签
       XML 标签
       JSTL 函数
     -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/taglibs/standard -->
    <!--提供JSTL和EL表达式支持
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
     -->
    <!--##########################JSTL相关jar包 end########################-->

  </dependencies>
  <build>
    <finalName>web-ssm</finalName>
  </build>
</project>






推荐阅读更多精彩内容