优秀且经验丰富的Java开发人员的特征之一是对API的广泛了解,包括JDK和第三方库。 我花了很多时间来学习API,尤其是在阅读了Effective Java 3rd Edition之后 ,Joshua Bloch建议在Java 3rd Edition中使用现有的API进行开发,而不是为常见的东西编写新的代码。
这对我来说很有意义,因为这些第二方库都经过了测试。 在本文中,我将分享Java开发人员应该熟悉的一些最有用和最基本的库和API。 顺便说一句,我没有包括Spring和Hibernate这样的框架,因为它们是众所周知的并且具有特定的功能。
这是我收集的一些有用的第三方库,Java开发人员可以在其应用程序中使用它们来完成许多有用的任务。 为了使用这些库,Java开发人员也应该熟悉这些,这是本文的重点。 如果您有想法,可以研究该库并加以使用。
1、记录库
日志记录库很常见,因为在每个项目中都需要它们。 对于服务器端应用程序而言,它们是最重要的事情,因为日志仅放置在您可以看到应用程序运行状况的位置。 即使JDK附带了自己的日志记录库,也有许多更好的选择,例如Log4j,SLF4j和LogBack。
Java开发人员应该熟悉日志记录库的优缺点,并且知道为什么使用SLF4j比普通的Log4j更好 。 如果您不知道为什么我建议您阅读我以前关于同一主题的文章。
2、JSON解析库
在当今的Web服务和物联网(IoT)世界中,JSON已成为将信息从客户端传送到服务器的首选协议。 他们已经将XML替换为以平台无关的方式传输信息的最优选方式。 不幸的是,JDK还没有JSON库,但是幸运的是,有很多优秀的第三方库可以让您解析和创建JSON消息,例如Jackson和Gson。
3、单元测试库
单元测试是将普通开发人员与优秀开发人员区分开的最重要的事情。 经常给程序员借口,而不是编写单元测试,而是最常见的借口,避免单元测试的借口是缺乏流行的单元测试库(例如JUnit,Mockito和PowerMock)的经验和知识。
推荐一个开源免费的 Spring Boot 实战项目:
4、通用库
Java开发人员可以使用几个非常好的通用第三方库,例如Apache Commons和Google Guava。 我总是将这些库包含在我的项目中,因为它们简化了许多任务。 正如约书亚·布洛赫(Joshua Bloch)在《 有效的Java》 (现在已经有第3版)中正确说的那样,重新发明轮子没有意义,我们应该宁愿使用经过考验的库,也不要时不时编写自己的例程。
这只是一个优秀的Java开发人员熟悉Google的Guava和Apache commons库。
5、JNPF
JNPF开发平台是一个基于SpringBoot+Vue3的全栈开发平台,采用微服务、前后端分离架构。前后端封装了上千个常用类,方便扩展;集成了代码生成器,支持前后端业务代码生成,满足快速开发;框架集成了表单、报表、图表、大屏等各种常用的Demo方便直接使用;后端框架支持Vue2、Vue3;平台即可私有化部署,也支持K8S部署。
应用地址:www.jnpfsoft.com
技术架构
1、数据库兼容:MySQL(默认)、SQLServer、Oracle、PostgreSQL、达数据库、人大金仓数据库
2、分布式文件存储:兼容 MinIO 及多个云对象存储,如阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS 等
3、后端基于IDEA + Eclipse +Spring Tool Suite 等开发。
4、前端基于Node.js+Vue + TypeScript +Vite+Pinia+Pnpm+ Element-ui等开发。
5、移动端开发 Node.js 开发
6、XML解析库
存在许多XML解析库,例如Xerces,JAXB,JAXP,Dom4j,Xstream等。Xerces2是Apache Xerces系列中的下一代高性能,完全兼容的XML解析器。 Xerces的这个新版本引入了Xerces本机接口(XNI),这是一个用于构建解析器组件和配置的完整框架,该框架非常模块化且易于编程。
添加图片注释,不超过 140 字(可选)
Apache Xerces2解析器是XNI的参考实现,但其他解析器组件,配置和解析器也可以使用Xerces本机接口编写。 Dom4j是另一个适用于Java应用程序的灵活XML框架。
7、Excel阅读库
信不信由你,但所有实际应用程序都必须以某种形式与Microsoft Office进行交互。 许多应用程序都需要提供在Excel中导出数据的功能,如果必须从Java应用程序中导出数据,则需要Apache POI API。
这是一个非常丰富的库,它使您可以从Java程序读取和写入XLS文件 。 您可以看到该链接,以获取在Core Java应用程序中读取Excel文件的工作示例。
8、字节码库
如果您正在编写生成代码或与字节码交互的框架或库,则需要一个字节码库。 它们使您可以读取和修改应用程序生成的字节码。 Java世界中一些流行的字节码库是javassist和Cglib Nodep。
Javassist(JAVA编程ASSISTant)使Java字节码操作非常简单。 它是用于在Java中编辑字节码的类库。 ASM是另一个有用的字节码编辑库。
9、数据库连接池库
如果要通过Java应用程序与数据库进行交互,但不使用数据库连接池库,那么您将丢失某些内容。 由于在运行时创建连接会花费时间,并使请求处理变慢,因此始终建议使用DB连接库。 最受欢迎的是Commons Pool和DBCP 。
在Web应用程序中,通常是Web服务器提供这些功能,但是在核心Java应用程序中,您需要将这些连接池库包括到类路径中才能使用数据库连接池。 如果您想了解有关Web应用程序中JDBC和连接池的更多信息,建议您阅读Udemy中的JSP,Servlet和JDBC for Beginners课程。
10、消息库
与日志记录和数据库连接类似,消息传递也是许多实际Java应用程序的共同功能。 Java提供了JMS,Java Messaging Service,但这不是JDK的一部分,您需要包括单独的jms.jar。 同样,如果您使用的是第三方消息传递协议,例如Tibco RV,则需要在应用程序类路径中使用第三方JAR,例如tibrv.jar。