1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

78 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Java 优质开源工具类
category: 开源项目
icon: codelibrary-fill
---
## 代码质量
- [Lombok](https://github.com/rzwitserloot/lombok) :一个能够简化 Java 代码的强大工具库。通过使用 Lombok 的注解,我们可以自动生成常用的代码逻辑,例如 `getter``setter``equals``hashCode``toString` 方法,以及构造器、日志变量等内容。
- [Guava](https://github.com/google/guava "guava") Google 开发的一组功能强大的核心库,扩展了 Java 的标准库功能。它提供了许多有用的工具类和集合类型,例如 `Multimap`(多值映射)、`Multiset`(多重集合)、`BiMap`双向映射和不可变集合此外还包含图形处理库和并发工具。Guava 还支持 I/O 操作、哈希算法、字符串处理、缓存等多种实用功能。
- [Hutool](https://github.com/looly/hutool "hutool") : 一个全面且用户友好的 Java 工具库,旨在通过最小的依赖简化开发任务。它封装了许多实用的功能,例如文件操作、缓存、加密/解密、日志、文件操作。
## 问题排查和性能优化
- [Arthas](https://github.com/alibaba/arthas "arthas")Alibaba 开源的 Java 诊断工具,可以实时监控和诊断 Java 应用程序。它提供了丰富的命令和功能,用于分析应用程序的性能问题,包括启动过程中的资源消耗和加载时间。
- [Async Profiler](https://github.com/async-profiler/async-profiler):低开销的异步 Java 性能分析工具,用于收集和分析应用程序的性能数据。
- [Spring Boot Startup Report](https://github.com/maciejwalkowiak/spring-boot-startup-report):用于生成 Spring Boot 应用程序启动报告的工具。它可以提供详细的启动过程信息,包括每个 bean 的加载时间、自动配置的耗时等,帮助你分析和优化启动过程。
- [Spring Startup Analyzer](https://github.com/linyimin0812/spring-startup-analyzer/blob/main/README_ZH.md):采集 Spring 应用启动过程数据,生成交互式分析报告(HTML),用于分析 Spring 应用启动卡点,支持 Spring Bean 异步初始化,减少优化 Spring 应用启动时间。UI 参考[Spring Boot Startup Report](https://github.com/maciejwalkowiak/spring-boot-startup-report)实现。
## 文档处理
### 文档解析
- [Tika](https://github.com/apache/tika)Apache Tika 工具包能够检测并提取来自超过一千种不同文件类型(如 PPT、XLS 和 PDF的元数据和文本内容。
### Excel
- [EasyExcel](https://github.com/alibaba/easyexcel) :快速、简单避免 OOM 的 Java 处理 Excel 工具。不过,这个个项目不再维护,迁移至了 [FastExcel](https://github.com/fast-excel/fastexcel)。
- [Excel Spring Boot Starter](https://github.com/pig-mesh/excel-spring-boot-starter):基于 FastExcel 实现的 Spring Boot Starter用于简化 Excel 的读写操作。
- [Excel Streaming Reader](https://github.com/monitorjbl/excel-streaming-reader)Excel 流式代码风格读取工具(只支持读取 XLSX 文件),基于 Apache POI 封装,同时保留标准 POI API 的语法。
- [MyExcel](https://github.com/liaochong/myexcel):一个集导入、导出、加密 Excel 等多项功能的工具包。
### Word
- [poi-tl](https://github.com/Sayi/poi-tl):基于 Apache POI 的 Word 模板引擎,可以根据 Word 模板和数据生成 Word 文档,所见即所得!
### JSON
- [JsonPath](https://github.com/json-path/JsonPath):处理 JSON 数据的工具库。
### PDF
对于简单的 PDF 创建需求OpenPDF 是一个不错的选择它开源免费API 简单易用。对于需要解析、转换和提取文本等操作的复杂场景,可以选择 Apache PDFBox。当然了复杂场景如果不介意 LGPL 许可也可以选择 iText。
- [x-easypdf](https://gitee.com/dromara/x-easypdf):一个用搭积木的方式构建 PDF 的框架(基于 pdfbox/fop支持 PDF 导出和编辑,适合简单的 PDF 文档生成场景。
- [iText](https://github.com/itext/itext7):一个用于创建、编辑和增强 PDF 文档的 Java 库。iText 7 社区版采用 AGPL 许可证,如果你的项目是闭源商业项目,需要购买商业许可证。 iText 5 仍然是 LGPL 许可,可以免费用于商业用途,但已经停止维护。
- [OpenPDF](https://github.com/LibrePDF/OpenPDF):完全开源免费 (LGPL/MPL 双重许可),基于 iText 的一个分支,可以作为 iText 的替代品,简单易用,但功能相比于 iText 更少一些(对于大多数场景已经足够)。
- [Apache PDFBox](https://github.com/apache/pdfbox) :完全开源免费 (Apache 许可证),功能强大,支持 PDF 的创建、解析、转换和提取文本等。不过,由于其功能过于丰富,因此 API 设计相对复杂,学习难度会大一些。
- [FOP](https://xmlgraphics.apache.org/fop/) : Apache FOP 用于将 XSL-FOExtensible Stylesheet Language Formatting Objects格式化对象转换为多种输出格式最常见的是 PDF。
## 图片处理
- [Thumbnailator](https://github.com/coobird/thumbnailator):一个图像处理工具库,主要功能是缩放图像、添加水印、旋转图像、调整图片大小以及区域裁剪。
- [Imglib](https://github.com/nackily/imglib):一个轻量级的 JAVA 图像处理库,致力于简化对图像的常见处理,主要提供三部分的能力:图像收集、图像处理(基于 Thumbnailator 实现)、聚合与分裂。
## 验证码
- [EasyCaptcha](https://gitee.com/whvse/EasyCaptcha)Java 图形验证码,支持 gif、中文、算术等类型可用于 Java Web、JavaSE 等项目。
- [AJ-Captcha](https://gitee.com/anji-plus/captcha):行为验证码(滑动拼图、点选文字),前后端(java)交互。
- [tianai-captcha](https://gitee.com/tianai/tianai-captcha):好看又好用的滑块验证码。
## 短信&邮件
- [SMS4J](https://github.com/dromara/SMS4J):短信聚合框架,解决接入多个短信 SDK 的繁琐流程。
- [Simple Java Mail](https://github.com/bbottema/simple-java-mail):最简单的 Java 轻量级邮件库,同时能够发送复杂的电子邮件。
## 在线支付
- [Jeepay](https://gitee.com/jeequan/jeepay):一套适合互联网企业使用的开源支付系统,已实现交易、退款、转账、分账等接口,支持服务商特约商户和普通商户接口。已对接微信,支付宝,云闪付官方接口,支持聚合码支付。
- [YunGouOS-PAY-SDK](https://gitee.com/YunGouOS/YunGouOS-PAY-SDK)YunGouOS 微信支付接口、微信官方个人支付接口、非二维码收款,非第四方清算。个人用户可提交资料开通微信支付商户,完成对接。
- [IJPay](https://gitee.com/javen205/IJPay)聚合支付IJPay 让支付触手可及封装了微信支付、QQ 支付、支付宝支付、京东支付、银联支付、PayPal 支付等常用的支付方式以及各种常用的接口。
## 其他
- [oshi](https://github.com/oshi/oshi "oshi"):一款为 Java 语言提供的基于 JNA 的(本机)操作系统和硬件信息库。
- [ip2region](https://github.com/lionsoul2014/ip2region) :最自由的 ip 地址查询库ip 到地区的映射库,提供 Binary,B 树和纯内存三种查询算法,妈妈再也不用担心我的 ip 地址定位。
- [agrona](https://github.com/real-logic/agrona)Java 高性能数据结构(`Buffers``Lists``Maps``Scalable Timer Wheel`……)和实用方法。