在构建基于Spring Boot的Java项目时,继承官方的spring-boot-starter-parent是常见做法。然而,该父POM所管理的依赖范围有限,难以覆盖日常开发中的所有场景。为此,本文将介绍一个更为全面、灵活的Maven Parent方案,它整合了大量经过实践检验的常用依赖,旨在提升项目构建效率和开发体验。
使用方式
您可以通过两种方式将此依赖管理包集成到您的项目中:
-
定义为项目父级依赖:
使用parent标签直接继承。
<parent>
<groupId>io.github.pangju666</groupId>
<artifactId>pangju-dependencies</artifactId>
<version>1.0.0</version>
<relativePath/><!-- lookup parent from repository -->
</parent>
-
导入依赖管理:
在dependencyManagement标签中导入该POM,这种方式更为灵活,不影响项目已有的父POM继承关系。
<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>
项目信息
依赖管理详解
以下为该Parent工程所管理的主要依赖及其简要说明与评价。
IO工具
-
commons-io 2.18.0
- 描述:Apache提供的经典文件与流操作工具库。
- 评价:功能全面,是Java IO操作的必备工具。
-
commons-exec 1.4.0
- 描述:用于更强大、灵活地执行外部进程。
- 评价:调用外部程序或Shell脚本时非常方便。
文件处理
-
commons-compress 1.27.1
- 描述:支持多种压缩格式(ZIP, TAR, 7z等)的读写。
- 提示:处理7z格式需额外引入
org.tukaani:xz依赖。
- 评价:主流支持zip和7z,但不支持rar格式。
-
fastexcel 1.1.0
- 描述:高性能Excel文件读写库,旨在替代不再维护的EasyExcel。
- 评价:处理大型Excel文件时性能优于Apache POI。
-
poi-tl 1.12.2
- 描述:基于POI的Word模板引擎,通过占位符动态生成.docx文档。
- 评价:比直接使用POI生成Word文档方便得多,渲染模板的首选。
-
poi / poi-ooxml 5.4.0
- 描述:Apache POI,用于操作Microsoft Office格式文件。
- 评价:
poi支持.doc, .xls, .ppt;poi-ooxml支持.docx, .xlsx, .pptx。
-
pdfbox 3.0.4
- 描述:用于创建、解析和操作PDF文档的Java库。
- 提示:解析特定图片格式需额外引入
jbig2-imageio和jai-imageio-jpeg2000等拓展包。
- 评价:功能强大,但处理大文件或复杂操作时易内存溢出,建议关键操作考虑调用外部程序。
-
tika-core 3.1.0
- 描述:用于检测和提取上千种文件格式的元数据及内容。
- 提示:需引入
tika-parsers-standard-package来获得完整格式解析能力。
- 评价:解析文件MIME类型、元数据和内容的神器,但依赖较多,会增大包体积。
图像处理
- thumbnailator 0.4.20
- 描述:简单易用的缩略图生成库,支持缩放、旋转、水印等。
- 评价:API友好,但在高并发或处理大图片时需注意内存,生产环境可考虑
GraphicsMagick等外部工具。
网络与容错
- resilience4j-bom 2.3.0
- 描述:轻量级容错库,提供熔断、限流、重试等模式。
- 评价:其中
resilience4j-ratelimiter限流器非常轻量好用。
集合与字符串
- commons-collections4 4.4.4
- 描述:对Java集合框架的强力扩展。
- 评价:经典工具库,使用广泛。
- commons-text 1.13.0
- 描述:提供字符串相似度计算、替换等高级文本工具。
- 评价:字符串转换功能实用。
对象映射与反射
- mapstruct 1.6.3
- 描述:通过注解自动生成类型安全的Bean映射代码。
- 评价:强烈推荐用于DTO、VO转换,比
BeanUtils更高效安全。
- reflections 0.10.2
- 描述:扫描类路径并建立索引,支持运行时查询类信息。
- 评价:开发基础库或框架时非常实用的工具。
鉴权与安全
- sa-token-bom 1.40.0
- 描述:国产轻量级Java权限认证框架。
- 评价:功能设计比Spring Security更符合国内开发习惯,API简洁。
数据访问与缓存
- redisson 3.45.0
- 描述:高级Redis Java客户端,提供分布式锁、延迟队列等数据结构。
- 评价:其分布式锁实现成熟可靠,是Redis应用开发的好帮手。
- dynamic-datasource-spring-boot3-starter 4.3.1
- 描述:Spring Boot 3.x动态数据源切换starter。
- 评价:实现多租户、读写分离等场景很方便。
- mybatis-plus-bom 3.5.10.1
- 描述:MyBatis的增强工具包,提供CRUD、分页、代码生成等功能。
- 评价:能极大提升基于MyBatis的开发效率。
- p6spy 3.9.1
- 描述:用于拦截和格式化打印SQL语句的库。
- 评价:在开发测试阶段用于SQL调试,比MyBatis自带的日志更清晰。
测试
- spock-core / spock-spring 2.4-M5-groovy-4.0
- 描述:基于Groovy的BDD风格测试框架及其Spring集成模块。
- 评价:结合Groovy语法,写单元测试更灵活、表达力更强。
插件管理
- smart-doc-maven-plugin 3.0.9
- 描述:基于JavaDoc注释生成API文档的Maven插件,支持OpenAPI。
- 评价:无侵入式生成文档,比Swagger注解方式更优雅。
|