一、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ù)庫連接池)-->
<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分頁插件 -->
<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ù)庫連接與線程池
1、 Druid是一個(gè)JDBC組件刽肠,它包括三部分:
- DruidDriver 代理Driver溃肪,能夠提供基于Filter-Chain模式的插件體系。
- DruidDataSource 高效可管理的數(shù)據(jù)庫連接池音五。
- SQLParser
2惫撰、Druid功能
可以監(jiān)控?cái)?shù)據(jù)庫訪問性能,Druid內(nèi)置提供了一個(gè)功能強(qiáng)大的StatFilter插件躺涝,能夠詳細(xì)統(tǒng)計(jì)SQL的執(zhí)行性能厨钻,這對(duì)于線上分析數(shù)據(jù)庫訪問性能有幫助。
替換DBCP和C3P0坚嗜。Druid提供了一個(gè)高效夯膀、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫連接池苍蔬。
數(shù)據(jù)庫密碼加密诱建。直接把數(shù)據(jù)庫密碼寫在配置文件中,這是不好的行為碟绑,容易導(dǎo)致安全問題俺猿。DruidDruiver和DruidDataSource都支持PasswordCallback茎匠。
SQL執(zhí)行日志,Druid提供了不同的LogFilter押袍,能夠支持Common-Logging诵冒、Log4j和JdkLog,你可以按需要選擇相應(yīng)的LogFilter谊惭,監(jiān)控你應(yīng)用的數(shù)據(jù)庫訪問情況造烁。
擴(kuò)展JDBC,如果你要對(duì)JDBC層有編程的需求午笛,可以通過Druid提供的Filter-Chain機(jī)制惭蟋,很方便編寫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è)通用的開源的JavaUtil,一個(gè)Java基礎(chǔ)工具類,對(duì)文件围辙、流我碟、加密解密、轉(zhuǎn)碼姚建、正則矫俺、線程、XML等JDK方法進(jìn)行封裝掸冤,組成各種Util工具類
<!-- 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ì)象查詢語言
- Java Criteria查詢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è)過去的日期
@Future 被注釋的元素必須是一個(gè)將來的日期
@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ù)邏輯不再耦合
摒棄原來不規(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)用澳淑,類似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)⒖梢灾苯邮褂米⒔饽酆#渲煤脭r截器冬殃,核心業(yè)務(wù)邏輯完全沒有驗(yàn)證邏輯的影子,干凈利落叁怪。回調(diào)給予你充分的自由度
驗(yàn)證過程中發(fā)生的錯(cuò)誤审葬、異常,驗(yàn)證結(jié)果的返回奕谭,開發(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)∮ぴ裕總的來說满粗,消息規(guī)范里面定義最常見的幾種消息通信模式主要有發(fā)布-訂閱、點(diǎn)對(duì)點(diǎn)這兩種愚争。另外映皆,通過結(jié)合這些模式的具體應(yīng)用挤聘,我們?cè)谔幚砟承?yīng)用場(chǎng)景的時(shí)候也衍生出來了一種請(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類庫步淹,提供將Java對(duì)象(包括:beans从隆,maps,collections缭裆,java arrays 和 XML等)和JSON互相轉(zhuǎn)換的功能
-
示例
2键闺、fastjson
-
簡(jiǎn)介
-
阿里巴巴FastJson是一個(gè)Json處理工具包,包括“序列化”和“反序列化”兩部分澈驼,它具備如下特征:
- 速度最快艾杏,測(cè)試表明,fastjson具有極快的性能盅藻,超越任其他的Java Json parser购桑。包括自稱最快的JackJson;
- 功能強(qiáng)大氏淑,完全支持Java Bean勃蜘、集合、Map假残、日期缭贡、Enum,支持范型辉懒,支持自恃羧恰;
- 無依賴眶俩,能夠直接運(yùn)行在Java SE 5.0以上版本莹汤;支持Android;開源 (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ù)器的訪問功能,HttpComponents項(xiàng)目就是專門設(shè)計(jì)來簡(jiǎn)化HTTP客戶端與服務(wù)器進(jìn)行各種通訊編程。通過它可以讓原來很頭疼的事情現(xiàn)在輕松的解決钞楼,例如你不再管是HTTP或者HTTPS的通訊方式喇闸,告訴它你想使用HTTPS方式,剩下的事情交給 httpclient替你完成
2、示例
<!-- 提供對(duì)http服務(wù)器的訪問功能 -->
<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ò)展(也就是說JSTL依賴EL)夯秃,JSTL是標(biāo)簽語言座咆!JSTL標(biāo)簽使用以來非常方便,它與JSP動(dòng)作標(biāo)簽一樣仓洼,只不過它不是JSP內(nèi)置的標(biāo)簽介陶,需要我們自己導(dǎo)包,以及指定標(biāo)簽庫而已色建!
<!-- 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開源組織提供的用于操作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ì)我們有用的類主要有:
StringUtils 該類主要提供對(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提供了方便的方法來覆蓋equals() 和hashCode()方法
以Range結(jié)尾的類主要提供一些范圍的操作,包括判斷某些字符,數(shù)字等是否在這個(gè)范圍以內(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)目中用來處理常用的編碼方法的工具類包,例如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提供壓縮熬尺、解壓縮文件的類庫摸屠,可以操作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>