【架構(gòu)】常用jar包的maven依賴(lài)于詳解

一、junit

<!--Junit測(cè)試-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

二、Spring

<!--Spring相關(guān)配置-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--Spring security(企業(yè)安全權(quán)限管理)-->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${spring-security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${spring-security.version}</version>
        </dependency>
        <!--Spring session(采用redis)-->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
            <version>1.3.0.RELEASE</version>
        </dependency>

三、shiro(安全驗(yàn)證框架)

<!-- shiro (安全驗(yàn)證框架)-->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>${shiro.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-web</artifactId>
            <version>${shiro.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-quartz</artifactId>
            <version>${shiro.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>${shiro.version}</version>
        </dependency>

四、MyBatis

<!-- mybatis (數(shù)據(jù)庫(kù)連接池)-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
<!-- MyBatis集成Spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>
<!-- MyBatis分頁(yè)插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>${mybatis-pagehelper.version}</version>
        </dependency>
<!-- Mybatis自動(dòng)代碼生成工具 -->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>${mybatis-generator.version}</version>
        </dependency>

五、dubbo

<!-- dubbo (分布式采用架構(gòu) 主流的dubbo)-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

六、zookeeper

<!-- zookeeper -->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

七、velocity(模板引擎)

簡(jiǎn)介: https://my.oschina.net/aiguozhe/blog/39553

<!-- velocity(模板引擎) -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
        </dependency>

八、ehcache(全局ehcache緩存)

<!-- ehcache(全局ehcache緩存) -->
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache</artifactId>
            <version>${ehcache.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-ehcache</artifactId>
            <version>${mybatis-ehcache.version}</version>
        </dependency>

九、數(shù)據(jù)庫(kù)連接與線程池

1、 Druid是一個(gè)JDBC組件,它包括三部分:

  • DruidDriver 代理Driver,能夠提供基于Filter-Chain模式的插件體系。
  • DruidDataSource 高效可管理的數(shù)據(jù)庫(kù)連接池。
  • SQLParser

2、Druid功能

  • 可以監(jiān)控?cái)?shù)據(jù)庫(kù)訪問(wèn)性能,Druid內(nèi)置提供了一個(gè)功能強(qiáng)大的StatFilter插件,能夠詳細(xì)統(tǒng)計(jì)SQL的執(zhí)行性能,這對(duì)于線上分析數(shù)據(jù)庫(kù)訪問(wèn)性能有幫助。

  • 替換DBCP和C3P0。Druid提供了一個(gè)高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫(kù)連接池。

  • 數(shù)據(jù)庫(kù)密碼加密。直接把數(shù)據(jù)庫(kù)密碼寫(xiě)在配置文件中,這是不好的行為,容易導(dǎo)致安全問(wèn)題。DruidDruiver和DruidDataSource都支持PasswordCallback。

  • SQL執(zhí)行日志,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應(yīng)的LogFilter,監(jiān)控你應(yīng)用的數(shù)據(jù)庫(kù)訪問(wèn)情況。

  • 擴(kuò)展JDBC,如果你要對(duì)JDBC層有編程的需求,可以通過(guò)Druid提供的Filter-Chain機(jī)制,很方便編寫(xiě)JDBC層的擴(kuò)展插件。

druid API : http://tool.oschina.net/apidocs/apidoc?api=druid0.26

 <!-- MySQL官方JDBC驅(qū)動(dòng)程序 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34</version>
            <scope>runtime</scope>
        </dependency>
<!-- 阿里線程池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.14</version>
        </dependency>

十、redis

<!-- redis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>1.7.5.RELEASE</version>
        </dependency>

十一、日志

<!-- 日志 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.12</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.12</version>
        </dependency>

十二、文件上傳

<!-- 上傳 -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>

十三、hutool架包

hutool架包,一個(gè)通用的開(kāi)源的JavaUtil,一個(gè)Java基礎(chǔ)工具類(lèi),對(duì)文件、流、加密解密、轉(zhuǎn)碼、正則、線程、XML等JDK方法進(jìn)行封裝,組成各種Util工具類(lèi)

<!-- hutool架包 -->
    <dependency>
        <groupId>com.xiaoleilu</groupId>
        <artifactId>hutool-all</artifactId>
        <version>3.0.5</version>
    </dependency>

十四、swagger2

restful生成工具,但具體效果

<!-- swagger2(restful生成工具,但具體效果) -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.4.0</version>
        </dependency>

十五、Hibernate Validator

1、 JPA(java persistence api) 對(duì)象/關(guān)系映射機(jī)制

  • 對(duì)象/關(guān)系映射元數(shù)據(jù)及API
  • Java對(duì)象查詢(xún)語(yǔ)言
  • Java Criteria查詢(xún)API

詳解: http://blog.csdn.net/taiyangdao/article/details/50616399

2、 javax.validation

  • 服務(wù)端的數(shù)據(jù)按照我們事先的約定進(jìn)行數(shù)據(jù)有效性驗(yàn)證

示例: http://elim.iteye.com/blog/1025623

3、hibernate-validator

@Null   被注釋的元素必須為 null  
@NotNull    被注釋的元素必須不為 null  
@AssertTrue     被注釋的元素必須為 true  
@AssertFalse    被注釋的元素必須為 false  
@Min(value)     被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值  
@Max(value)     被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值  
@DecimalMin(value)  被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值  
@DecimalMax(value)  被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值  
@Size(max=, min=)   被注釋的元素的大小必須在指定的范圍內(nèi)  
@Digits (integer, fraction)     被注釋的元素必須是一個(gè)數(shù)字,其值必須在可接受的范圍內(nèi)  
@Past   被注釋的元素必須是一個(gè)過(guò)去的日期  
@Future     被注釋的元素必須是一個(gè)將來(lái)的日期  
@Pattern(regex=,flag=)  被注釋的元素必須符合指定的正則表達(dá)式  
  
Hibernate Validator 附加的 constraint  
@NotBlank(message =)   驗(yàn)證字符串非null,且長(zhǎng)度必須大于0  
@Email  被注釋的元素必須是電子郵箱地址  
@Length(min=,max=)  被注釋的字符串的大小必須在指定的范圍內(nèi)  
@NotEmpty   被注釋的字符串的必須非空  
@Range(min=,max=,message=)  被注釋的元素必須在合適的范圍內(nèi)  

3、fluent-validator

簡(jiǎn)介: http://neoremind.com/2016/02/java%E7%9A%84%E4%B8%9A%E5%8A%A1%E9%80%BB%E8%BE%91%E9%AA%8C%E8%AF%81%E6%A1%86%E6%9E%B6fluent-validator/

  • Java的業(yè)務(wù)邏輯驗(yàn)證框架fluent-validator

  • FluentValidator特點(diǎn)

    1. 驗(yàn)證邏輯與業(yè)務(wù)邏輯不再耦合
      摒棄原來(lái)不規(guī)范的驗(yàn)證邏輯散落的現(xiàn)象。

    2. 校驗(yàn)器各司其職,好維護(hù),可復(fù)用,可擴(kuò)展
      一個(gè)校驗(yàn)器(Validator)只負(fù)責(zé)某個(gè)屬性或者對(duì)象的校驗(yàn),可以做到職責(zé)單一,易于維護(hù),并且可復(fù)用。

    3. 流式風(fēng)格(Fluent Interface)調(diào)用
      借助Martin大神提倡的流式API風(fēng)格,使用“惰性求值(Lazy evaluation)”式的鏈?zhǔn)秸{(diào)用,類(lèi)似guava、Java8 stream API的使用體驗(yàn)。

    4. 使用注解方式驗(yàn)證
      可以裝飾在屬性上,減少硬編碼量。

    5. 支持JSR 303 – Bean Validation標(biāo)準(zhǔn)
      或許你已經(jīng)使用了Hibernate Validator,不用拋棄它,F(xiàn)luentValidator可以站在巨人的肩膀上。

    6. Spring良好集成
      校驗(yàn)器可以由Spring IoC容器托管。校驗(yàn)入?yún)⒖梢灾苯邮褂米⒔?,配置好攔截器,核心業(yè)務(wù)邏輯完全沒(méi)有驗(yàn)證邏輯的影子,干凈利落。

    7. 回調(diào)給予你充分的自由度
      驗(yàn)證過(guò)程中發(fā)生的錯(cuò)誤、異常,驗(yàn)證結(jié)果的返回,開(kāi)發(fā)人員都可以定制。

https://my.oschina.net/rockfate/blog/794295

示例: http://blog.csdn.net/wuyt2008/article/details/8597312

<!-- Hibernate Validator -->
        <!-- JPA -->
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0.2</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.2.Final</version>
        </dependency>
        <!-- fluent-validator -->
        <!--Validator用spring托管-->
        <dependency>
            <groupId>com.baidu.unbiz</groupId>
            <artifactId>fluent-validator</artifactId>
            <version>1.0.6</version>
        </dependency>

十六、Thymeleaf

1、簡(jiǎn)介

  • Thymeleaf是一款優(yōu)秀的模板引擎,它在HTML5/XHTML的視圖層表現(xiàn)的很好,也能在離線情況下處理任何XML文件。它是完全可以替代JSP+JSTL的。

2、示例

<!-- Thymeleaf -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring4</artifactId>
            <version>${thymeleaf.version}</version>
        </dependency>

十六、ActiveMQ

1、簡(jiǎn)介

  • activemq是JMS消息通信規(guī)范的一個(gè)實(shí)現(xiàn)??偟膩?lái)說(shuō),消息規(guī)范里面定義最常見(jiàn)的幾種消息通信模式主要有發(fā)布-訂閱、點(diǎn)對(duì)點(diǎn)這兩種。另外,通過(guò)結(jié)合這些模式的具體應(yīng)用,我們?cè)谔幚砟承?yīng)用場(chǎng)景的時(shí)候也衍生出來(lái)了一種請(qǐng)求應(yīng)答的模式。

2、示例

<!-- ActiveMQ -->
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>5.7.0</version>
        </dependency>

十七、JSON

1、json-lib

2、fastjson

  • 簡(jiǎn)介

    • 阿里巴巴FastJson是一個(gè)Json處理工具包,包括“序列化”和“反序列化”兩部分,它具備如下特征:

      • 速度最快,測(cè)試表明,fastjson具有極快的性能,超越任其他的Java Json parser。包括自稱(chēng)最快的JackJson;
      • 功能強(qiáng)大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自?。?/li>
      • 無(wú)依賴(lài),能夠直接運(yùn)行在Java SE 5.0以上版本;支持Android;開(kāi)源 (Apache 2.0)
  • 示例

3、jackson-caon/jackson-databind/jackson-annotations

 <!-- json -->
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.6.5</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.6.5</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.6.5</version>
        </dependency>

十八、javax.mail

1、簡(jiǎn)介

  • Java發(fā)送郵件javax.mail
<!-- java mail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

十九、httpclient

1、簡(jiǎn)介

  • 提供對(duì)http服務(wù)器的訪問(wèn)功能,HttpComponents項(xiàng)目就是專(zhuān)門(mén)設(shè)計(jì)來(lái)簡(jiǎn)化HTTP客戶(hù)端與服務(wù)器進(jìn)行各種通訊編程。通過(guò)它可以讓原來(lái)很頭疼的事情現(xiàn)在輕松的解決,例如你不再管是HTTP或者HTTPS的通訊方式,告訴它你想使用HTTPS方式,剩下的事情交給 httpclient替你完成

2、示例

<!-- 提供對(duì)http服務(wù)器的訪問(wèn)功能 -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
         <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency>

二十、aspectjweaver

1、AOP動(dòng)態(tài)代理的實(shí)現(xiàn)

<!-- aspectj -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.8</version>
        </dependency>

二十一、servlet-api

1簡(jiǎn)介

<!-- servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

二十二、jstl

1、簡(jiǎn)介

  • JSTL是apache對(duì)EL表達(dá)式的擴(kuò)展(也就是說(shuō)JSTL依賴(lài)EL),JSTL是標(biāo)簽語(yǔ)言!JSTL標(biāo)簽使用以來(lái)非常方便,它與JSP動(dòng)作標(biāo)簽一樣,只不過(guò)它不是JSP內(nèi)置的標(biāo)簽,需要我們自己導(dǎo)包,以及指定標(biāo)簽庫(kù)而已!

  • http://blog.csdn.net/qq_25827845/article/details/53311722

<!-- jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

二十三、maven-surefire-plugin

1、簡(jiǎn)介

  • http://www.tuicool.com/articles/uaqyAn

  • maven-surefire-plugin 是maven里執(zhí)行測(cè)試用例的插件,不顯示配置就會(huì)用默認(rèn)配置。這個(gè)插件的 surefire:test 命令會(huì)默認(rèn)綁定maven執(zhí)行的 test 階段。


<build>
        <finalName>yhb-common</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <skipTests>true</skipTests>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>
        </plugins>
    </build>


常用common

1、commons-beanutils

  • 作用

commons-beanutils是Apache開(kāi)源組織提供的用于操作JAVA BEAN的工具包。使用commons-beanutils,我們可以很方便的對(duì)bean對(duì)象的屬性進(jìn)行操作

  • 示例

http://blog.csdn.net/jianggujin/article/details/51104949

 <!-- 常用工具包 -->
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.3</version>
        </dependency>

2、commons-lang

  • commons-lang包中對(duì)我們有用的類(lèi)主要有:

    • StringUtils 該類(lèi)主要提供對(duì)字符串的操作,對(duì)null是安全的,主要提供了字符串查找,替換,分割,去空白,去掉非法字符等等操作

    • ObjectUtils 主要是對(duì)null進(jìn)行安全處理,可以設(shè)置為null時(shí)的默認(rèn)返回值,比較相等時(shí)是調(diào)用對(duì)象的equals方法,因此需要對(duì)對(duì)象進(jìn)行方法進(jìn)行覆蓋

    • SystemUtils 主要獲取一些系統(tǒng)屬性,例如工作目錄等等

    • DateUtils/CalendarUtils 主要提供了對(duì)日期的操作,包括日期加減,日期格式化,日期比較,一定時(shí)間范圍內(nèi)日期的迭代等等

    • StopWatch 提供秒表的計(jì)時(shí),暫停等功能

    • EqualsBuilder/HashCodeBuilder提供了方便的方法來(lái)覆蓋equals() 和hashCode()方法

    • 以Range結(jié)尾的類(lèi)主要提供一些范圍的操作,包括判斷某些字符,數(shù)字等是否在這個(gè)范圍以?xún)?nèi)

    • ArrayUtils 提供了數(shù)組的復(fù)制,查找,獲取子數(shù)組,反轉(zhuǎn)等功能

<!-- apache 基礎(chǔ)工具包 -->
    <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

3、commons-codec

  • 是項(xiàng)目中用來(lái)處理常用的編碼方法的工具類(lèi)包,例如DES、SHA1、MD5、Base64,URL,Soundx等等。不僅是編碼,也可用于解碼。
<!-- commons-codec -->
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.10</version>
    </dependency>

4、commons-compress

Compress是ApacheCommons提供壓縮、解壓縮文件的類(lèi)庫(kù),可以操作ar, cpio, Unix dump, tar, zip,gzip, XZ, Pack200 and bzip2格式的文件

<!--commons-compress -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>1.12</version>
    </dependency>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容