在构建Spring Boot项目时,直接继承官方的spring-boot-starter-parent是常见做法,但其内置的依赖管理范围可能无法满足所有开发场景。本文将介绍一种更灵活的Maven依赖管理方案,通过一个精心整理的Parent POM或依赖管理导入,为你的项目预置一系列实用的工具库,涵盖文件处理、网络通信、数据操作等多个方面,帮助提升开发效率。
使用方式
你可以通过两种方式将此依赖管理方案集成到你的项目中。
方式一:作为Parent依赖
在项目的pom.xml中使用parent标签将其定义为父级依赖。
<parent>
<groupId>io.github.pangju666</groupId>
<artifactId>pangju-dependencies</artifactId>
<version>1.0.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
方式二:通过dependencyManagement导入
如果你不希望改变现有的父POM,也可以使用dependencyManagement标签将其导入。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.pangju666</groupId>
<artifactId>pangju-dependencies</artifactId>
<version>1.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
项目信息
依赖管理详解
该方案管理了众多常用库的版本,以下按功能分类进行介绍。
IO操作
- commons-io 2.18.0: Apache出品,用于简化文件、流操作的工具库,非常经典且实用。
- commons-exec 1.4.0: 提供了更强大灵活的方式来执行和管理外部进程或Shell脚本。
文件处理
这是一个非常丰富的类别,包含了处理各种办公文档、压缩文件、PDF等的库,是后端开发中处理文件的利器,常与数据库和中间件操作协同工作。
- commons-compress 1.27.1: 支持ZIP、TAR、7z等多种压缩格式的读写。
- 提示:处理7z格式需额外依赖
org.tukaani:xz。
- commons-csv 1.13.0: 用于读写CSV文件的简单库。
- fastexcel 1.1.0: 高性能的Excel读写库(EasyExcel的新版本)。
- poi-tl 1.12.2: 基于POI的Word模板引擎,通过占位符动态生成.docx文件,比直接使用POI方便。
- poi / poi-ooxml 5.4.0: Apache POI,用于操作Microsoft Office文档(.doc/.xls/.ppt 和 .docx/.xlsx/.pptx)的老牌库。
- pdfbox 3.0.4: 功能全面的PDF处理库,可用于创建、编辑和提取PDF内容。
- 提示:处理
jbig2和jpeg2000图像格式需要额外依赖。
- fontbox / xmpbox 3.0.4: PDFBox的字体和元数据处理模块,通常随PDFBox引入。
- tika-core 3.1.0: 用于检测文件类型和提取元数据、文本内容的强大工具。
- 提示:需要解析具体文件内容时,需额外引入
tika-parsers-standard-package。
图像处理
- metadata-extractor 2.19.0: 专门从图片文件(如JPEG、PNG)中提取EXIF、IPTC等元数据。
- thumbnailator 0.4.20: 简单易用的缩略图生成库,支持缩放、旋转、裁剪等操作。
- jai-imageio-core / jbig2-imageio: 主要用于支持PDFBox处理特定图像格式。
网络与通信
- commons-net 3.11.1: 实现了FTP、SMTP、POP3等基础网络协议的客户端。
- resilience4j-bom 2.3.0: 轻量级容错库,提供了断路器、限流器等模式。可整体引入
resilience4j-spring-boot3,或仅引入限流模块resilience4j-ratelimiter。
集合与数据结构
- commons-collections4 4.4.4: 对Java集合框架的增强,提供了更多集合类型和工具。
数学运算
- commons-math3 3.6.1: 提供了广泛的数学计算和统计分析功能。
- commons-numbers-core 1.2: 基础数学运算和数值计算库。
- big-math 2.3.2: 提供任意精度的高级BigDecimal数学函数(如sqrt、log、sin等)。
字符串处理
- commons-text 1.13.0: 提供了字符串相似度计算、字符替换等高级文本处理工具。
- jpinyin 1.1.8: 汉字转拼音库(注:原项目已停止维护)。
加密安全
- commons-crypto 1.2.0: 高性能加密库,封装了JCE和OpenSSL。
- jasypt 1.9.3: 简化加密操作的库,接口封装良好,内置的AES加密器很有参考价值。
XML处理
- dom4j 2.1.4: 灵活强大的XML解析与操作库。
Bean映射与反射
- mapstruct 1.6.3: 通过注解自动生成类型安全的Bean映射代码,推荐使用。
- reflections 0.10.2: 在运行时扫描和查询类路径元数据,编写框架或库时非常有用。
鉴权认证
- java-jwt 4.5.0: 用于生成和验证JWT(JSON Web Token)的库,上手简单。
- sa-token-bom 1.40.0: 国产轻量级权限认证框架,功能强大,对Spring Boot支持友好(通过
sa-token-spring-boot-starter引入)。
并发编程
- disruptor 4.0.0: 高性能的无锁线程间消息传递库,可作为内存消息队列的替代方案。
- expiringmap 0.5.11: 带自动过期功能的Map实现,适合用作内存缓存。
数据持久化与访问
- redisson / redisson-spring-boot-starter 3.45.0: Redis的Java客户端,提供了丰富的分布式数据结构和服务,其中分布式锁功能常用。
- dynamic-datasource-spring-boot3-starter 4.3.1: 动态数据源切换starter,适用于多租户、读写分离等场景。
- mybatis-plus-bom 3.5.10.1: MyBatis的增强工具包,提供了便捷的CRUD、分页等功能(通过
mybatis-plus-spring-boot3-starter引入)。
- mybatis / mybatis-spring-boot-starter 3.0.4: MyBatis核心及其Spring Boot Starter。
- p6spy 3.9.1: 用于拦截和记录SQL语句的执行,方便调试。
- spring-vault-core 33.1.2: 用于与HashiCorp Vault集成,安全地访问和管理敏感配置信息。
其他工具
- commons-validator 1.9.0: 提供了通用的数据验证器,适合参数校验。
- commons-configuration2 2.11.0: 用于处理多种来源的应用程序配置。
- guava 33.4.0-jre: Google提供的核心Java工具库,功能全面。
测试相关
- spock-core / spock-spring 2.4-M5-groovy-4.0: 基于Groovy的测试框架,语法简洁富有表现力,支持BDD风格,并能与Spring很好集成。
插件管理
- smart-doc-maven-plugin 3.0.9: 基于JavaDoc注释自动生成API文档的Maven插件,支持多种输出格式。
- gmavenplus-plugin 4.1.1: 用于在Maven项目中编译和执行Groovy代码的插件,常用来运行Spock测试。
|