0.Maven構建spring專案(4.3.6.RELEASE)

weixin_34041003發表於2018-01-18

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>






相關文章