首页 > 编程语言 >按功能划分的常用Java库

按功能划分的常用Java库

时间:2024-03-23 23:33:18浏览次数:12  
标签:core 常用 Java commons 划分 apache org com

日志打印

使用slf4j作为日志门面API,常用的日志实现库为log4jlogback

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.36</version>
</dependency>

<!-- 使用logback作为底层日志实现框架,需要在classpath路径下包含配置文件logback.xml -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.3.14</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.3.14</version>
</dependency>

<!-- 使用log4j1.2.x版本作为底层日志实现框架,需要在classpath路径下包含配置文件log4j.properties -->
<dependency> 
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.36</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

<!-- 使用log4j2.x版本作为底层日志实现框架,需要在classpath路径下包含配置文件log4j2.xml -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.12.4</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.12.4</version>
</dependency>

JSON解析

可以使用JacksonGson或者FastJson作为JSON解析库。
其中FastJson又分为fastjson1和fastjson2两个版本。

<!-- 使用jackson解析json -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.17.0</version>
</dependency>

<!-- 使用gson解析json -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>

<!-- 使用fastjson2解析json -->
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.47</version>
</dependency>

<!-- 使用fastjson1解析json -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.47</version>
</dependency>

XML解析

Apache Xerces2解析器是XNI的参考实现,Dom4j也是另一个常用于Java应用程序的灵活XML框架。

<!-- Xerces2 -->
<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.12.2</version>
</dependency>

<!-- Dom4j -->
<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.1.4</version>
</dependency>

HTML解析

jsoup极大地简化了在Java应用程序中使用HTML,使用jsoup不仅解析HTML,还可以创建HTML文档。
jsoup实现了WHATWG HTML5规范并将HTML解析为与现代浏览器相同的 DOM。

<!-- jsoup -->
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.17.2</version>
</dependency>

办公文档处理

Apache POI是处理Microsoft文档的Java API,EasyExcel支持Excel大文件处理。
iTextApache FOP则可以支持PDF文档处理。

<!-- apache poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.5</version>
</dependency>

<!-- easyexcel -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.3.4</version>
</dependency>

<!-- itextpdf -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13.3</version>
</dependency>

<!-- fop -->
<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>fop</artifactId>
    <version>2.9</version>
</dependency>

单元测试

可以使用的测试库有:JUnitMockitoPowerMock
其中JUnit常用的版本又分为:Junit3,Junit4,Junit5。

<!-- Junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.2</version>
    <scope>test</scope>
</dependency>

<!-- Mockito -->
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>5.11.0</version>
    <scope>test</scope>
</dependency>

<!-- Powermock -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-core</artifactId>
    <version>2.0.9</version>
    <scope>test</scope>
</dependency>

HTTP客户端

JDK自带HttpURLConnection,Apache HttpComponents HttpClientOkHttp支持http2,Feign是更高层次封装的接口框架,是一个完全可以基于注解配置的API库,底层的通信实现可以基于HTTPURLConnection,Apache HttpClient,OKHttp,甚至是Java11 Http2。

<!-- httpclient  -->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.14</version>
</dependency>

<!-- okhttp -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.12.0</version>
</dependency>

<!-- feign -->
<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-core</artifactId>
    <version>13.2.1</version>
</dependency>

字节码处理

Javassist使Java字节码操作变得非常简单,它是一个用于在Java中编辑字节码的类库,ASM是另一个有用的字节码编辑库。
Cglib也是一个流行的字节码库。

<!-- javassist -->
<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.30.2-GA</version>
</dependency>

<!-- asm -->
<dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm</artifactId>
    <version>9.6</version>
</dependency>

<!-- cglib -->
<dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib</artifactId>
    <version>3.3.0</version>
</dependency>

数据库连接池

一些流行连接池库如下:
Commons Pool是一个通用的对象池
DBCP是一个基于Commons Pool的数据库连接池
HikariCP也是一个高性能的数据库连接池
Druid号称是一个为监控而生的数据库连接池
Tomcat JDBC Pool是Tomcat组件提供的数据库连接池

<!-- commons-pool2 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.12.0</version>
</dependency>

<!-- commons-dbcp2 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
    <version>2.12.0</version>
</dependency>

<!-- HikariCP -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.1.0</version>
</dependency>

<!-- druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.22</version>
</dependency>

<!-- tomcat-jdbc -->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jdbc</artifactId>
    <version>8.5.99</version>
</dependency>

JDBC故障排除

有一些很好的JDBC扩展库可以让调试更容易,比如P6spy,它可以无缝拦截和记录数据库数据,而无需更改应用程序的代码。您可以使用它们来记录 SQL 查询及其时间。
例如,如果在代码中使用PreparedStatment和CallableStatement,P6spy可以记录带有参数的准确调用以及执行所需的时间。

<!-- p6spy -->
<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>3.9.1</version>
</dependency>

集合处理

java.util包下是JDK自带的集合框架,包含:List,Map,Queue,Set,Stack,Vector等。
Commons Collections是对JDK集合框架的扩展和增强。
Guava是Google开源的Java工具类库集合,涉及IO,缓存,集合等,支持在Android平台使用。

<!-- commons-collections4 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

<!-- guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>33.1.0-jre</version>
</dependency>

邮件发送

javax.mailApache Commons Email都提供了用于从Java发送电子邮件的 API 。

<!-- javax.mail -->
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>

<!-- commons-email -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-email</artifactId>
    <version>1.6.0</version>
</dependency>

加解密

Apache Commons Codec包含各种格式的简单编码器和解码器,例如Base64和 Hexadecimal。

<!-- commons-codec -->
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.16.1</version>
</dependency>

序列化

Google Protobuf是一种以高效且可扩展的格式对结构化数据进行编码的方法,它是Java序列化的更丰富和更好的替代方案。
需要使用protobuf编译器编译protobuf描述文件。

<!-- protobuf-java -->
<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>4.26.0</version>
</dependency>

网络编程

如果正在编写需要执行低级网络任务的应用程序,请考虑使用NettyApache MINA

<!-- netty-all -->
<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.108.Final</version>
</dependency>

<!-- mina-core -->
<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-core</artifactId>
    <version>2.2.3</version>
</dependency>

标签:core,常用,Java,commons,划分,apache,org,com
From: https://www.cnblogs.com/nuccch/p/18091908

相关文章

  • Java中的继承、重载与重写:概念、区别与实例演示(day7)
    Java的继承、重载以及重写java的继承:java的重载java的重写:在这个例子中:Animal类是父类,它有一个makeSound方法和两个重载的eat方法。Dog类是子类,它继承了Animal类,并重写了makeSound方法,使其具有不同的行为。此外,Dog类还重载了eat方法,但这次重载的方法......
  • 线路查询||基于Java+Spring Boot+MySQL的公交线路查询系统设计与实现(源码+数据库+文
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、其他案例七、源码获取作者介绍:✌️大厂全栈码农|毕设实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️作者博客:曾几何时​​​​​​​......
  • 基于ssm药品管理系统(java毕业设计源码)
    收藏关注不迷路1.项目介绍本药品管理系统以Mysql数据库作为数据存储的核心,并依托SSM框架进行开发,确保系统架构的稳固与高效。Tomcat服务器作为运行环境,为系统提供了稳定可靠的运行平台。在开发过程中,我们选择了ECLIPSE作为开发平台,利用其强大的功能和灵活的扩展性,极大地......
  • 卡码java基础课 | 17.判断集合成员
    学习内容:set的概念和特点set的基本操作,比如创建、插入、删除、查找HashSet的常用方法Set集合的遍历迭代器重点归纳:set本质上是一种集合接口,类似于数学中的集合,常用于存储一组元素,用来判断一种元素是否在集合中。Set接口的常见实现类包括HashSet、TreeSet和LinkedHashSet......
  • 深入剖析Java中的“==”与“equals”:不同之处及实践
    引言比较在任何编程语言中都是基本操作,Java提供了“==”运算符和“equals()”方法进行比较,它们在比较对象时有着本质的区别。“==”:引用数据类型与基本数据类型比较对于基本数据类型,如int、double等“==”比较的是值本身。对于引用数据类型,如String、Arrays等,它比较的......
  • Java 枚举(超详细讲解)
    Java语言的强大之处在于它提供了多种多样的类库,从而大大提高了程序的编程效率和质量。一、枚举事先考虑到某一变量可能的取值,尽可能用自然语言忠表意清楚的单词来表示它的每一个值,用这中思路定义的类型被称为枚举类型。枚举事由一组固定的常量组成的类型。在Java中每个枚......
  • Java面试题:用Java并发工具类,实现一个线程安全的单例模式;使用Java并发工具包和并发框架
    面试题一:设计一个Java并发工具类,实现一个线程安全的单例模式,并说明其工作原理。题目描述:请设计一个Java并发工具类,实现一个线程安全的单例模式。要求使用Java内存模型、原子操作、以及Java并发工具包中的相关工具。考察重点:对Java内存模型的理解。对Java并发工具包的了......
  • JAVA面向对象高级三:内部类概述,成员内部类,静态内部类
            静态内部类:     局部内部类: ......
  • 基于java+springboot+vue实现的游戏账号估价交易平台(文末源码+Lw+ppt)23-555
    摘 要系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对游戏账号估价交易的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的思想,在游戏账号估价交易平台......
  • 基于java+springboot+vue实现的外卖平台系统(文末源码+Lw+ppt)23-568
    摘 要伴随着我国社会的发展,人民生活质量日益提高。于是对外卖平台系统进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套外卖平台系统,帮助商家进行菜品分类、菜品信息、订单等繁琐又重......