找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1615

积分

1

好友

227

主题
发表于 3 天前 | 查看: 9| 回复: 0

在构建基于Spring Boot的Java项目时,继承官方的spring-boot-starter-parent是常见做法。然而,该父POM所管理的依赖范围有限,难以覆盖日常开发中的所有场景。为此,本文将介绍一个更为全面、灵活的Maven Parent方案,它整合了大量经过实践检验的常用依赖,旨在提升项目构建效率和开发体验。

使用方式

您可以通过两种方式将此依赖管理包集成到您的项目中:

  1. 定义为项目父级依赖
    使用parent标签直接继承。

    <parent>
    <groupId>io.github.pangju666</groupId>
    <artifactId>pangju-dependencies</artifactId>
    <version>1.0.0</version>
    <relativePath/><!-- lookup parent from repository -->
    </parent>
  2. 导入依赖管理
    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>

项目信息

  • 仓库地址https://github.com/pangju666/java-pangju-dependencies
  • 继承关系:本项目自身继承自 spring-boot-starter-parent:3.4.3
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.3</version>
    <relativePath/><!-- lookup parent from repository -->
    </parent>

依赖管理详解

以下为该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-imageiojai-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注解方式更优雅。



上一篇:Kafka消费者核心机制与代码实现:消息拉取、Offset管理与容错处理
下一篇:算法推荐、生成式AI与“屎化”困境:理性用户为何重建数字空间
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 19:14 , Processed in 0.238801 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表