mirror of
https://gitee.com/jzsw-it/yexuejc-base.git
synced 2026-10-25 17:20:19 +08:00
master
- README: 版本号升级2.0.0, 新增jre17分支, 添加各分支JDK特性差异表 - README: 新增分支管理策略说明(master对齐jre21) - CHANGELOG: 补充Task#16异常规范修复记录 - CHANGELOG: 重写版本说明章节, 含v2.0.0更新摘要和四分支对照表
yexuejc-base
Java 常用工具包,支持 Java 8 / 11 / 17 / 21 多版本适配
版本选择
版本号格式:主版本号.次版本号.修订号-jrexx,其中 jrexx 表示目标 JDK 版本。
| Java 版本 | 分支 | 推荐版本号 | 说明 |
|---|---|---|---|
| Java 21+(推荐) | jre21 |
2.0.0-jre21 |
主开发分支,包含最新语法特性 |
| Java 17+(LTS) | jre17 |
2.0.0-jre17 |
LTS 长期支持 |
| Java 11+(LTS) | jre11 |
2.0.0-jre11 |
LTS 长期支持 |
| Java 8+ | jre8 |
2.0.0-jre8 |
兼容旧项目 |
master 分支: 对齐 jre21 功能,版本号不含
-jrexx后缀(当前为2.0.0),作为统一文档和发布参考。
Maven 引入
<dependency>
<groupId>top.yexuejc</groupId>
<artifactId>yexuejc-base</artifactId>
<!-- 根据你的 JDK 版本选择对应版本 -->
<version>2.0.0-jre21</version>
</dependency>
各分支功能差异
以下功能在所有分支中完全相同:
- 加密模块:AES / DES3 / RSA / RSA2 / 签名验签
- 数据处理:JsonUtil / StrUtil / ObjUtil / CsvUtil
- 文件操作:FileUtil / ZipUtil / ImgUtil
- 异常体系:BaseException / BaseRuntimeException / ExpCode + i18n 多语言
- POJO:BaseVO / PagerVO / RequestHeader / Response 体系
- 工具类:MoneyUtil / SysUtil / IdcardValidator / MessageService (SPI)
以下功能因 JDK 版本存在实现差异:
| 功能 | jre21 (Java 21+) | jre17 (Java 17+) | jre11 (Java 11+) | jre8 (Java 8+) |
|---|---|---|---|---|
| switch 表达式(模式匹配) | ✅ | ❌ if-else | ❌ if-else | ❌ if-else |
| instanceof 模式匹配 | ✅ | ✅ | ❌ 强制转型 | ❌ 强制转型 |
| var 局部变量类型推断 | ✅ | ✅ | ❌ 显式类型 | ❌ 显式类型 |
| @Serial 注解 | ✅ | ✅ | ❌ 移除 | ❌ 移除 |
| Optional.isEmpty() | ✅ | ✅ | ✅ | ❌ isPresent() 取反 |
| List.of() / Map.of() | ✅ | ✅ | ✅ | ❌ Arrays.asList() |
| Files.writeString() | ✅ | ✅ | ✅ | ❌ 自定义写入方法 |
| System.Logger (JDK9+) | ✅ | ✅ | ✅ | ❌ java.util.logging.Logger |
| Record 类型支持 | ✅ | ✅(16+) | ❌ | ❌ |
| Text Block ("""") | ✅ | ✅(15+) | ❌(13+) | ❌ |
| Sealed Classes | ✅ | ✅(17+) | ❌ | ❌ |
特性
- 开箱即用 — 基于 Spring Boot 提取,适用于所有 Java 工程
- 四分支同步 — 同步维护 jre8 / jre11 / jre17 / jre21 四个分支,功能对齐
- 零外部依赖 — 核心模块仅依赖 Jackson,其余均为 Java 原生实现
- 生产可用 — 经过多个商业项目验证
- 多语言异常 — ExpCode + i18n properties(zh_CN / en_US / ja_JP / ko_KR / zh_TW)
功能模块
加密
| 组件 | 说明 |
|---|---|
| AES | CBC / GCM / CFB / OFB / PCBC 模式 |
| DES3 | 3DES 加解密(已标记废弃,推荐使用 AES-GCM) |
| RSA | 支持 PKCS1 / OAEP 填充,密钥生成与证书模式 |
| 签名 | MD5withRSA / SHA256withRSA |
日期时间
| 组件 | 说明 |
|---|---|
| DateTimeUtil | 基于 java.time API(推荐) |
| DateUtil | 基于 java.util.Date(已标记废弃) |
数据处理
| 组件 | 说明 |
|---|---|
| JsonUtil | Jackson 封装,内置 LocalDate/LocalDateTime/Timestamp 序列化 |
| StrUtil | UUID、MD5、SHA256、驼峰转换、URL 编解码、空值判断 |
| ObjUtil | 驼峰↔下划线字段映射、Bean 复制、深度克隆 |
| CsvUtil | CSV 文件写入,支持 Bean 转 CSV、自定义编码/BOM/分隔符/换行符 |
文件操作
| 组件 | 说明 |
|---|---|
| FileUtil | 类型判断、MD5/SHA1/CRC32 摘要、大文件分段读取、通用 digest |
| ZipUtil | ZIP 压缩与解压 |
| CSV | @CsvHeader 注解驱动,CSV ↔ Bean 转换 |
网络通信
| 组件 | 说明 |
|---|---|
| HTTP 响应 | BasicResponse / ListResponse / ObjectResponse / SignResponse |
| JWT | HS512 签名,支持过期时间配置 |
| 签名请求 | SignRequest / SignResponse 签名体系 |
工具类
| 组件 | 说明 |
|---|---|
| IdcardValidator | 身份证号校验(18位 + 出生日期验证) |
| MoneyUtil | 金额转换(分 ↔ 元) |
| SysUtil | 系统线程、JVM 内存信息(无外部依赖) |
| MessageService | SPI 机制,支持多语言消息(zh_CN/en_US/ja_JP/ko_KR/zh_TW) |
异常体系
| 组件 | 说明 |
|---|---|
| BaseException | 受检异常基类 |
| BaseRuntimeException | 非受检异常基类 |
| ExpCode | 统一异常码枚举 |
POJO
BaseVO / PagerVO / RequestHeader / CreateZipFileBean 等通用数据对象。
文档
| 文档 | 说明 |
|---|---|
| 功能说明 | 各模块详细功能文档 |
| 更新记录 | 版本变更日志(含四分支记录) |
| 全功能列表 | 四分支功能对比 |
分支管理策略
master (2.0.0) ← 统一文档/发布参考,对齐 jre21 功能
├── jre21 (2.0.0-jre21) ← 主开发分支
├── jre17 (2.0.0-jre17) ← LTS 同步
├── jre11 (2.0.0-jre11) ← LTS 同步
└── jre8 (2.0.0-jre8) ← 兼容同步
工作流: 功能开发在 jre21 完成 → 验证通过后 merge 到 jre17/jre11/jre8(按需做 JDK 兼容降级)→ 最终合并到 master。
贡献
欢迎提交 Issue 和 Pull Request。
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/xxx) - 提交改动 (
git commit -m 'feat: xxx') - 推送分支 (
git push origin feature/xxx) - 创建 Pull Request
License
本项目基于 MIT License 开源。
Copyright © 2017-2026 yexuejc
Languages
Java
100%