一般一個經驗豐富的開發者,一般都喜歡使用開源的第三方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開發人員可以使用一些優秀的通用第三方庫,比如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庫。
兩者都提供了有用的PDF相關功能,但iText更豐富、更好。
12,日期和時間庫
在Java 8之前,JDK的數據和時間庫有很多缺陷,因為它們不是線程安全的、不可變的和容易出錯的。許多Java開發人員依賴于JodaTime來實現他們的日期和時間需求。
從JDK 8開始,就沒有理由使用JodaTime ,因為JDK 8的新的日期和時間API提供了所有這些功能,但是如果您使用的是較舊的Java版本,那么JodaTime是一個值得學習的庫。
13,集合庫
盡管JDK有豐富的集合庫,但也有一些第三方庫提供了更多的選項,比如Apache Commons集合、Goldman Sachs(高盛公司)集合、谷歌集合和Trove。
Trove庫特別有用,因為它為Java提供了高速的常規和基本集合。
FastUtil是另一個類似的API。它擴展了Java集合框架,提供了類型特定的映射、集合、列表和優先級隊列,占用的內存很少,訪問和插入也很快;它還提供了大型(64位)數組、集合和列表,并為二進制文件和文本文件提供了快速、實用的I/O類。
14,郵件API庫
javax.mail和Apache Commons Email都提供了從Java發送電子郵件的API。它構建在JavaMail API之上,其目的是簡化API。
15,html轉換庫
與JSON和XML類似,HMTL是許多人必須處理的另一種常見格式。謝天謝地,我們有了JSoup,它極大地簡化了在Java應用程序中使用HTML的工作。
它提供了一個非常方便的API,可以使用DOM、css和類似于jquery的方法來提取和操作數據。JSoup實現了HTML5規范,并像現代瀏覽器那樣將HTML解析為相同的DOM。
16,加密庫
apache Commons Codec包包含用于各種格式(如Base64和十六進制)的簡單編碼器和解碼器。
除了這些廣泛使用的編碼器和解碼器之外,codec包還維護了語音編碼實用程序的集合/
17,嵌入式sql數據庫庫
像H2這樣的內存數據庫,它可以嵌入到Java應用程序中。它們非常適合測試SQL腳本和運行需要數據庫的單元測試。然而,H2并不是唯一的DB,您還可以選擇Apache Derby和HSQL。
18,JDBC故障排除庫
有一些很好的JDBC擴展庫,它們可以簡化調試,比如P6spy。
這個庫使數據庫數據能夠被無縫地攔截和記錄,而不需要對應用程序進行任何代碼更改。您可以使用它們來記錄SQL查詢及其計時。
例如,如果您在代碼中使用PreparedStatment和CallableStatement,這些庫可以使用參數記錄準確的調用以及執行所需的時間。
19,序列化庫
谷歌Protobuf是一種將結構化數據編碼為一種高效且可擴展格式的方法。它是Java序列化的更豐富和更好的選擇。建議有經驗的Java開發人員可以學習一下谷歌Protobuf。
20,網絡庫
一些有用的網絡庫是Netty和Apache MINA。如果您正在編寫一個需要執行低級網絡任務的應用程序,請考慮使用這些庫。
以上就是每個Java開發人員都應該使用的一些有用的庫。Java領域非常龐大,您會發現有大量的庫可以用來做不同的事情。
轉自:https://www.cnblogs.com/Hackerman/p/12577340.html