Java 生態擁有龐大第三方庫體系。本文彙整開發高頻使用的庫,按功能分類並附帶核心用途與 Maven 坐標關鍵字,供快速查閱與技術選型參考。
| 庫 | 核心功能 | Maven 關鍵字 |
|---|---|---|
| Apache Commons Lang | StringUtils、ObjectUtils、RandomStringUtils、Validation 等 java.lang 增強 | commons-lang3 |
| Apache Commons IO | FileUtils、IOUtils、LineIterator、Tailer 等 IO 操作封裝 | commons-io |
| Apache Commons Collections | MultiMap、BidiMap、LRUMap、CollectionUtils、Predicate/Transformer | commons-collections4 |
| Apache Commons Codec | Base64、Digest、URL、Soundex、Phonetic 等編解碼 | commons-codec |
| Apache Commons BeanUtils | PropertyUtils、BeanUtils、ConvertUtils、DynaBean 等反射/內省封裝 | commons-beanutils |
| Apache Commons Configuration | Properties、XML、JNDI、Database 等多源配置統一訪問 | commons-configuration2 |
| Google Guava | 不可變集合、快取、限流、Preconditions、Joiner/Splitter、EventBus 等 | guava |
| Google Guice | 輕量級 DI 容器,效能高於 Spring,適合微服務/獨立模組 | guice |
| 庫 | 用途 | Maven 關鍵字 |
|---|---|---|
| Jackson | JSON 處理標準,支援流式、樹模型、資料綁定、模組擴展 | jackson-databind |
| Gson | Google JSON 庫,API 簡潔,適合簡單場景 | gson |
| Fastjson | 阿里高效能 JSON,功能豐富但需注意版本安全 | fastjson |
| Apache POI | Office 文件(Excel、Word、PPT)讀寫 | poi, poi-ooxml |
| iText / OpenPDF | PDF 生成、操作、簽章 | itextpdf / openpdf |
| Super CSV | CSV 讀寫、驗證、轉換 | super-csv |
| Jsapar | 固定寬度/分隔符文本文件解析 | jsapar |
| Protobuf / Avro / Thrift | 高效二進制序列化,跨語言 RPC 適用 | protobuf-java, avro, libthrift |
| 庫 | 定位 | Maven 關鍵字 |
|---|---|---|
| HikariCP | 高效能連接池,Spring Boot 2+ 預設 | HikariCP |
| Druid | 阿里連接池,內建監控、防火牆、SQL 統計 | druid |
| c3p0 | 老牌連接池,Hibernate 常伴 | c3p0 |
| MyBatis / MyBatis-Plus | 半自動 ORM,動態 SQL、分頁、代碼生成 | mybatis, mybatis-plus |
| JOOQ | 型別安全 SQL 構建器,適合複雜查詢 | jooq |
| JDBI | 輕量 JDBC 封裝,函數式 API | jdbi3 |
| 庫 | 角色 | Maven 關鍵字 |
|---|---|---|
| SLF4J | 日誌門面,統一 API,底層可換 Logback/Log4j2/JUL | slf4j-api |
| Logback | SLF4J 原生實現,效能優、配置靈活 | logback-classic |
| Log4j 2 | 非同步日誌、GC-free、豐富 Appender | log4j-api, log4j-core |
| Micrometer | 指標門面,對接 Prometheus/Datadog/CloudWatch 等 | micrometer-core |
| 庫 | 特點 | Maven 關鍵字 |
|---|---|---|
| Apache HttpClient | 經典 HTTP 客戶端,支援連接池、重試、攔截器 | httpclient5 |
| OkHttp | Square 高效 HTTP/2 客戶端,Android/服務端通用 | okhttp |
| Netty | 高效能 NIO 框架,RPC、網關、即時通訊基石 | netty-all |
| MINA | Apache NIO 框架,較 Netty 簡單,適用中小專案 | mina-core |
| gRPC | 基於 Protobuf/HTTP2 的高效 RPC 框架 | grpc-stub, grpc-protobuf |
| 庫 | 特色 | Maven 關鍵字 |
|---|---|---|
| Disruptor | 無鎖環形緩衝,極高吞吐事件總線 | disruptor |
| JCTools | 非阻塞隊列、Map、原子類增強 | jctools-core |
| CompletableFuture / Reactor / RxJava | 異步編程模型,流式處理、背壓 | reactor-core, rxjava3 |
| 庫 | 用途 | Maven 關鍵字 |
|---|---|---|
| JUnit 5 | 單元測試標準 | junit-jupiter |
| Mockito | Mock 框架,行為驗證 | mockito-core |
| Hamcrest | 匹配器庫,增強斷言可讀性 | hamcrest |
| Testcontainers | 測試時啟動真實 DB/MQ 容器 | testcontainers |
| AssertJ | 流式斷言,IDE 智能提示友善 | assertj-core |
| DBUnit | 資料庫測試數據裝載/驗證 | dbunit |
合理選用第三方庫能大幅提升開發效率與代碼品質。建議團隊建立「技術雷達」,定期評估新舊庫演進,保持技術棧健康。