Java程序员必须了解的20个lib库

一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提高我们的开发效率,下面就来看一下在开发过程中经常会用到的一些开发第三方库,也可能不是太全,就列举一些常见或者常用的吧 。
1,日志库日志库是最常用的,毕竟在开发项目的过程中都需要使用日志来记录项目的运行信息,从而很快的定位项目的发生的问题 。尽管JDK附带了自己的日志库,但是还有更好的选择,例如Log4j、SLF4j和LogBack 。一般建议使用SLF4j 。比如Alibaba开发手册上也是这样说的,毕竟SLF4J使您的代码独立于任何特定的日志API,就是在项目的其它框架中使用了其它的日志框架库也能够很好的集成 。
2,JSON转换库在当今的web服务、手机api接口开发和物联网世界中,JSON已经成为将信息从客户端传送到服务器的首选协议 。它们已经取代了XML,成为以独立于平台的方式传输信息的首选方式 。不幸的是,JDK没有JSON库 。但是,有许多优秀的第三方库允许您解析和创建JSON消息,比如Jackson和Gson,FastJson 。
3,单元测试库库单元测试是区分普通开发人员和优秀开发人员的最重要的东西 。程序员经常被给予不写单元测试的借口,但是最常见的避免单元测试的借口是缺乏流行的单元测试库的经验和知识,包括JUnit、Mockito和PowerMock 。
4,通用类库【Java程序员必须了解的20个lib库】JAVA开发人员可以使用一些优秀的通用第三方库,比如Apache Commons和谷歌Guava 。我总是在我的项目中包含这些库,因为它们简化了许多任务 。正如约书亚•布洛赫(Joshua Bloch)在《Effective Java》一书中正确指出的那样,重新发明轮子是没有意义的 。我们应该使用经过测试的库,而不是时不时地编写我们自己的程序 。对于开发人员来说,熟悉Apache Commons和谷歌Guava是很有用的 。
5,HTTP库虽然JDK中的 java.net 包也能实现HTTP连接,以及Http请求,但是它的使用没有像Apache HttpClient和HttpCore这样的开源第三方库简单,执行HTTP请求都得自己自己重复写大量的代码 。虽然JDK 9提供了对HTTP 2.0的支持和对HTTP的更好支持,但我强烈建议所有Java开发人员熟悉流行的HTTP客户端请求库,包括HttpClient和HttpCore 。
6,XML解析库有许多XML解析库,包括Xerces、JAXB、JAXP、Dom4j和Xstream 。Xerces2是Apache Xerces家族中下一代高性能、完全兼容的XML解析器 。这个新版本的Xerces引入了Xerces本机接口(XNI),这是一个用于构建解析器组件和配置的完整框架,非常模块化,易于编程 。Apache Xerces2解析器是XNI的参考实现,但是可以使用Xerces本机接口编写其他解析器组件、配置和解析器 。Dom4j是另一个用于Java应用程序的灵活XML框架 。
7,Excel库信不信由你——所有现实世界的应用程序都必须以某种形式与Microsoft office交互 。许多应用程序需要提供在Excel中导出数据的功能,如果必须从Java应用程序中导出数据,则需要Apache POI API 。这是一个非常丰富的库,允许您从Java程序读取和写入XLS文件 。
8,字节码库如果您正在编写一个生成代码或与字节码交互的框架或库,那么您需要一个字节码库 。它们允许您读取和修改由应用程序生成的字节码 。
Java世界中流行的一些字节码库是javassist和Cglib Nodep 。Javassist 使得JAVA字节码操作非常简单 。它是一个用于编辑Java字节码的类库 。ASM是另一个有用的字节码编辑库 。
9,数据库连接池库如果您正在与来自Java应用程序的数据库进行交互,但是没有使用数据库连接池库,那么您可能会遗漏一些内容 。由于在运行时创建数据库连接需要时间,并且会使请求处理速度变慢,因此总是建议使用DB连接库 。其中最流行的是C3P0和DBCP,以及阿里的德鲁伊(Druid) 。
在web应用程序中,它的web服务器通常提供这些功能,但是在核心Java应用程序中,您需要将这些连接池库包含到类路径中,以使用数据库连接池 。
10,消息库与日志记录和数据库连接类似,消息传递也是许多实际Java应用程序的一个常见特性 。
Java提供JMS,或者Java消息传递服务,这不是JDK的一部分 。对于这个组件,您需要包含一个单独的jms.jar 。
类似地,如果您正在使用第三方消息传递协议,比如ActiveMQ,RabbitMQ,那么,您需要在您的应用程序类路径中使用第三方JAR—ActiveMQ,RabbitMQ的JAR 。
11,PDF库Microsoft Excel类似,PDF库是另一种常见的格式 。如果需要在应用程序中支持PDF功能,比如导出PDF文件中的数据,可以使用iText和Apache FOP,PDF Box库 。


推荐阅读