一、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(模板引擎)
<!-- 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)證
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
Java的業(yè)務(wù)邏輯驗(yàn)證框架fluent-validator
-
FluentValidator特點(diǎn)
驗(yàn)證邏輯與業(yè)務(wù)邏輯不再耦合
摒棄原來(lái)不規(guī)范的驗(yàn)證邏輯散落的現(xiàn)象。校驗(yàn)器各司其職,好維護(hù),可復(fù)用,可擴(kuò)展
一個(gè)校驗(yàn)器(Validator)只負(fù)責(zé)某個(gè)屬性或者對(duì)象的校驗(yàn),可以做到職責(zé)單一,易于維護(hù),并且可復(fù)用。流式風(fēng)格(Fluent Interface)調(diào)用
借助Martin大神提倡的流式API風(fēng)格,使用“惰性求值(Lazy evaluation)”式的鏈?zhǔn)秸{(diào)用,類(lèi)似guava、Java8 stream API的使用體驗(yàn)。使用注解方式驗(yàn)證
可以裝飾在屬性上,減少硬編碼量。支持JSR 303 – Bean Validation標(biāo)準(zhǔn)
或許你已經(jīng)使用了Hibernate Validator,不用拋棄它,F(xiàn)luentValidator可以站在巨人的肩膀上。Spring良好集成
校驗(yàn)器可以由Spring IoC容器托管。校驗(yàn)入?yún)⒖梢灾苯邮褂米⒔?,配置好攔截器,核心業(yè)務(wù)邏輯完全沒(méi)有驗(yàn)證邏輯的影子,干凈利落。回調(diào)給予你充分的自由度
驗(yàn)證過(guò)程中發(fā)生的錯(cuò)誤、異常,驗(yàn)證結(jié)果的返回,開(kāi)發(fā)人員都可以定制。
<!-- 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、示例
- www.tuicool.com/search?kw=Java模板引擎+Thymeleaf
<!-- 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、示例
- http://shmilyaw-hotmail-com.iteye.com/blog/1897635
- http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html
<!-- ActiveMQ -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-core</artifactId>
<version>5.7.0</version>
</dependency>
十七、JSON
1、json-lib
-
簡(jiǎn)介
- Json-lib包是一個(gè)Java類(lèi)庫(kù),提供將Java對(duì)象(包括:beans,maps,collections,java arrays 和 XML等)和JSON互相轉(zhuǎn)換的功能
-
示例
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ù)而已!
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
二十三、maven-surefire-plugin
1、簡(jiǎn)介
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)行操作
- 示例
<!-- 常用工具包 -->
<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>