述說幾個JAVA程式設計中經常使用的類庫。
日誌
SLF4J
是個很好的選擇,比 Log4J
要好一些。
JSON解析庫
Jackson
和 Gson
是比較好的選擇。當然,如果是簡單使用的話,fastjson
也不錯。
Jackson
所依賴的jar包較少,簡單易用並且效能也要相對高些。Jackson
社群相對比較活躍,更新速度也比較快。Jackson
對於複雜型別的json轉換bean會出現問題,一些集合Map,List的轉換出現問題。Jackson
對於複雜型別的bean轉換Json,轉換的json格式不是標準的Json格式。Gson
是目前功能最全的Json解析神器,Gson當初是為因應Google公司內部需求而由Google自行研發而來。Gson
的應用主要為toJson與fromJson兩個轉換函式,無依賴,不需要例外額外的jar,能夠直接跑在JDK上。Gson
在功能上面無可挑剔,但是效能上面比FastJson有所差距。Fastjson
是一個Java語言編寫的高效能的JSON處理器,由阿里巴巴公司開發。Fastjson
無依賴,不需要例外額外的jar,能夠直接跑在JDK上。FastJson
在複雜型別的Bean轉換Json上會出現一些問題,可能會出現引用的型別,導致Json轉換出錯,需要制定引用。FastJson
採用獨創的演算法,將parse的速度提升到極致,超過所有json庫。
綜上4種Json技術的比較,在專案選型的時候可以使用Google的Gson和阿里巴巴的FastJson兩種並行使用。
如果只是功能要求,沒有效能要求,可以使用google的Gson。
如果有效能上面的要求可以使用Gson將bean轉換json確保資料的正確,使用FastJson將Json轉換Bean。
單元測試庫
常見的單測框架有 JUnit
, Mockito
和PowerMock
。
Http 庫
HttpClient
和 okHttp
都不錯。JDK11 已經有client的基礎庫,不需要Http庫了。
XML解析庫
Xerces2
是下一代高效能,完全相容的XML解析工具,並提供了一個完整、相容標準的 XNI 規範實現。
Excel讀寫庫
Apache POI API
是個很好的選擇。
位元組碼庫
javassist
、ASM
和 Cglib Nodep
可以供你選擇。Javassist
使得JAVA位元組碼操作非常簡單,建議使用。
資料庫連線池庫
- 第二代連線池
HikariCP
在springboot中已經成為預設選擇,起源於BoneCP
,精簡到極致,適合微服務使用。 DRUID
是阿里巴巴開源的,擴充套件性比較好,支援SQL攔截,內建監控比較強大,在大型複雜專案中比較建議使用。BoneCP
可以備選,不建議用。
訊息傳遞庫
Java提供了JMS
Java訊息服務,但這不是JDK的一部分,你需要單獨的引入jms.jar 。如果準備使用第三方訊息傳遞協議, Tibco RV
是個不錯的選擇。
PDF處理庫
用 iText
或 Apache FOP
類庫來處理。
日期和時間庫
JDK8 之後已經不需要這個了。
集合類庫
Trove
可以使用。
郵件API
javax.mail
和 Apache Commons Email
提供了傳送郵件的api。它們建立在JavaMail API
的基礎上,提供簡化的用法。
HTML解析庫
用 jsoup
吧。
加密庫
Apache Commons
家族中的Commons Codec
就提供了一些公共的編解碼實現。比如 Base64, Hex, MD5,Phonetic and URLs
等
嵌入式SQL資料庫庫
H2
、 Apache Derby
和 HSQL
。
JDBC故障診斷庫
P6spy
。
序列化庫
Google Protocol Buffer
。
底層網路庫
Netty
和 Apache MINA
。
Jwt
com.auth0 / java-jwt / 3.3.0
和 io.jsonwebtoken / jjwt / 0.9.0
都不錯!