美文网首页架构社区SSM社区SSH社区
【架构】常用jar包的maven依赖于详解

【架构】常用jar包的maven依赖于详解

作者: 慕凌峰 | 来源:发表于2017-05-20 16:27 被阅读98次

    一、junit

    <!--Junit测试-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
    

    二、Spring

    <!--Spring相关配置-->
            <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(企业安全权限管理)-->
            <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(安全验证框架)

    <!-- shiro (安全验证框架)-->
            <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 (数据库连接池)-->
            <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自动代码生成工具 -->
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>${mybatis-generator.version}</version>
            </dependency>
    

    五、dubbo

    <!-- dubbo (分布式采用架构 主流的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(模板引擎)

    简介: 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>
    

    九、数据库连接与线程池

    1、 Druid是一个JDBC组件,它包括三部分:

    • DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
    • DruidDataSource 高效可管理的数据库连接池。
    • SQLParser

    2、Druid功能

    • 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。

    • 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。

    • 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。

    • SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。

    • 扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。

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

     <!-- MySQL官方JDBC驱动程序 -->
            <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架包,一个通用的开源的JavaUtil,一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种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) 对象/关系映射机制

    • 对象/关系映射元数据及API
    • Java对象查询语言
    • Java Criteria查询API

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

    2、 javax.validation

    • 服务端的数据按照我们事先的约定进行数据有效性验证

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

    3、hibernate-validator

    @Null   被注释的元素必须为 null  
    @NotNull    被注释的元素必须不为 null  
    @AssertTrue     被注释的元素必须为 true  
    @AssertFalse    被注释的元素必须为 false  
    @Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值  
    @Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值  
    @DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值  
    @DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值  
    @Size(max=, min=)   被注释的元素的大小必须在指定的范围内  
    @Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内  
    @Past   被注释的元素必须是一个过去的日期  
    @Future     被注释的元素必须是一个将来的日期  
    @Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式  
      
    Hibernate Validator 附加的 constraint  
    @NotBlank(message =)   验证字符串非null,且长度必须大于0  
    @Email  被注释的元素必须是电子邮箱地址  
    @Length(min=,max=)  被注释的字符串的大小必须在指定的范围内  
    @NotEmpty   被注释的字符串的必须非空  
    @Range(min=,max=,message=)  被注释的元素必须在合适的范围内  
    

    3、fluent-validator

    简介: 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的业务逻辑验证框架fluent-validator

    • FluentValidator特点

      1. 验证逻辑与业务逻辑不再耦合
        摒弃原来不规范的验证逻辑散落的现象。

      2. 校验器各司其职,好维护,可复用,可扩展
        一个校验器(Validator)只负责某个属性或者对象的校验,可以做到职责单一,易于维护,并且可复用。

      3. 流式风格(Fluent Interface)调用
        借助Martin大神提倡的流式API风格,使用“惰性求值(Lazy evaluation)”式的链式调用,类似guava、Java8 stream API的使用体验。

      4. 使用注解方式验证
        可以装饰在属性上,减少硬编码量。

      5. 支持JSR 303 – Bean Validation标准
        或许你已经使用了Hibernate Validator,不用抛弃它,FluentValidator可以站在巨人的肩膀上。

      6. Spring良好集成
        校验器可以由Spring IoC容器托管。校验入参可以直接使用注解,配置好拦截器,核心业务逻辑完全没有验证逻辑的影子,干净利落。

      7. 回调给予你充分的自由度
        验证过程中发生的错误、异常,验证结果的返回,开发人员都可以定制。

    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、简介

    • Thymeleaf是一款优秀的模板引擎,它在HTML5/XHTML的视图层表现的很好,也能在离线情况下处理任何XML文件。它是完全可以替代JSP+JSTL的。

    2、示例

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

    十六、ActiveMQ

    1、简介

    • activemq是JMS消息通信规范的一个实现。总的来说,消息规范里面定义最常见的几种消息通信模式主要有发布-订阅、点对点这两种。另外,通过结合这些模式的具体应用,我们在处理某些应用场景的时候也衍生出来了一种请求应答的模式。

    2、示例

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

    十七、JSON

    1、json-lib

    2、fastjson

    • 简介

      • 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:

        • 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
        • 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;
        • 无依赖,能够直接运行在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、简介

    • Java发送邮件javax.mail
    <!-- java mail -->
            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.4.7</version>
            </dependency>
    

    十九、httpclient

    1、简介

    • 提供对http服务器的访问功能,HttpComponents项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给 httpclient替你完成

    2、示例

    <!-- 提供对http服务器的访问功能 -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
            <version>4.5.2</version>
        </dependency>
    

    二十、aspectjweaver

    1、AOP动态代理的实现

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

    二十一、servlet-api

    1简介

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

    二十二、jstl

    1、简介

    • JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!

    • 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、简介

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

    • maven-surefire-plugin 是maven里执行测试用例的插件,不显示配置就会用默认配置。这个插件的 surefire:test 命令会默认绑定maven执行的 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,我们可以很方便的对bean对象的属性进行操作

    • 示例

    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包中对我们有用的类主要有:

      • StringUtils 该类主要提供对字符串的操作,对null是安全的,主要提供了字符串查找,替换,分割,去空白,去掉非法字符等等操作

      • ObjectUtils 主要是对null进行安全处理,可以设置为null时的默认返回值,比较相等时是调用对象的equals方法,因此需要对对象进行方法进行覆盖

      • SystemUtils 主要获取一些系统属性,例如工作目录等等

      • DateUtils/CalendarUtils 主要提供了对日期的操作,包括日期加减,日期格式化,日期比较,一定时间范围内日期的迭代等等

      • StopWatch 提供秒表的计时,暂停等功能

      • EqualsBuilder/HashCodeBuilder提供了方便的方法来覆盖equals() 和hashCode()方法

      • 以Range结尾的类主要提供一些范围的操作,包括判断某些字符,数字等是否在这个范围以内

      • ArrayUtils 提供了数组的复制,查找,获取子数组,反转等功能

    <!-- apache 基础工具包 -->
        <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
    

    3、commons-codec

    • 是项目中用来处理常用的编码方法的工具类包,例如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>
    

    相关文章

      网友评论

        本文标题:【架构】常用jar包的maven依赖于详解

        本文链接:https://www.haomeiwen.com/subject/jfspxxtx.html