499 Commits

Author SHA1 Message Date
e2e5f50162 refactor: AssertTools 类中的方法使用静态导入 2025-06-12 16:11:53 +08:00
8eac9054cd refactor(gson): 重构 JSR310TypeAdapters
- 抽象出 TemporalAccessorTypeAdapter 类,简化了 LocalDate、LocalDateTime、ZonedDateTime 和 Instant 类型适配器的实现
2025-06-09 17:55:25 +08:00
a55c712349 test: 使用 JSR310TypeAdapters 简化测试代码 2025-06-09 17:21:26 +08:00
0eda94a658 refactor(exception): 为异常类添加 serialVersionUID
为以下异常类添加 serialVersionUID 字段:
- ParsingFailureException
- BizException
- InvalidInputException
- RequestParamsException
- DataOperationResultException
- SysException
2025-06-09 17:05:10 +08:00
c816696c55 docs: 改正 ParsingFailureException 文档注释中的错误描述 2025-06-09 16:14:44 +08:00
8828b12c78 release: 1.1.0-RC1 1.1.0-RC1 2025-06-08 13:38:03 +08:00
89acbecc5a docs: 修改 javadoc 中的格式错误 2025-06-08 13:08:45 +08:00
336d99d4ba feat(gson): 添加 Gson 适配器以支持 JSR-310 中常用的类
Reviewed-on: #57
2025-06-07 01:02:15 +08:00
0731bf2c22 refactor(gson): 合并多个 JSR-310 类型适配器到 JSR310TypeAdapters
- 将 InstantTypeAdapter、LocalDateTimeTypeAdapter、LocalDateTypeAdapter 和 ZonedDateTimeTypeAdapter 合并到 JSR310TypeAdapters 类中
- 更新包结构,移动适配器到 adapter 子包
- 新增相关包的 javadoc
2025-06-07 00:56:11 +08:00
2827f69aef feat(gson): 新增 InstantTypeAdapter 用于 Gson 序列化和反序列化 Instant
`InstantTypeAdapter` 用于 Gson 通过 `DateTimeFormatter#ISO_INSTANT` 序列化和反序列化 `Instant` 类型。
2025-06-07 00:22:04 +08:00
2e73ca5f6d feat(gson): 添加 Gson 适配器以支持 Java 8 日期时间 API
- 新增 `LocalDateTimeTypeAdapter`、`LocalDateTypeAdapter` 和 `ZonedDateTimeTypeAdapter`
- 将 Gson 作为可选依赖
2025-06-06 19:13:52 +08:00
1239a11cd7 refactor: 优化 UnifiedResponses 工厂方法的泛型定义
将不指定 data 的工厂方法也改成泛型方法,而不是返回 `UnifiedResponse<Void>`。
2025-06-06 11:40:20 +08:00
f8a2046d2d refactor!: 将 RegexToolsmatchesOne 方法重命名为 matchesAny 2025-06-04 17:12:29 +08:00
fb2036c038 build: 升级 logback 到 1.3.15
logback 1.3.x 是最后一个支持 JDK8 的版本。

如果使用 Spring Boot,建议使用 Spring Boot 绑定的版本,但是 Spring Boot 2.7.x 最高只支持 logback 1.2.x,所以不可避免使用的有漏洞的版本。
2025-05-28 21:14:27 +08:00
f9b4c3c58c feat: 新增 StringTools#toQuotedString 方法 2025-05-18 15:18:52 +08:00
3ca2ec3be0 build: 简化依赖声明 2025-05-14 10:42:06 +08:00
f83bb55fd6 refactor!: 重构 DataOperationResultException (#56)
删除 `DataOperationResultException` 多余的构造方法,仅提供两个构造方法。
创建 `DataOperationResultException` 实例时,必须将预计影响的行数
和实际影响的行数作为入参。(不兼容)

重构 `AssertTools` 中相关的断言方法。

Reviewed-on: #56
Co-authored-by: ZhouXY108 <luquanlion@outlook.com>
Co-committed-by: ZhouXY108 <luquanlion@outlook.com>
2025-05-09 21:45:30 +08:00
e90e3dc1b4 fix(dependencies): 改正 jasypt 版本配置
Reviewed-on: #55
Co-authored-by: ZhouXY108 <luquanlion@outlook.com>
Co-committed-by: ZhouXY108 <luquanlion@outlook.com>
2025-05-02 17:07:48 +08:00
b774d8c477 chore: 更新 Code Spell Checker 的配置
Reviewed-on: #54
Co-authored-by: ZhouXY108 <luquanlion@outlook.com>
Co-committed-by: ZhouXY108 <luquanlion@outlook.com>
2025-05-02 15:27:32 +08:00
2a18a47ffe chore: 更新 guava
Reviewed-on: #53
Co-authored-by: ZhouXY108 <luquanlion@outlook.com>
Co-committed-by: ZhouXY108 <luquanlion@outlook.com>
2025-05-02 15:09:06 +08:00
cb903a8cce docs: 修改 MultiTypesException 文档描述
Co-authored-by: ZhouXY108 <luquanlion@outlook.com>
Co-committed-by: ZhouXY108 <luquanlion@outlook.com>
2025-05-02 14:13:07 +08:00
030ed9ed3b refactor: 更改项目结构
创建父项目 plusone-parent,将 plusone-commons 放在 plusone-parent 下;
在 plusone-parent 下创建 plusone-dependencies,由 plusone-dependencies 管理可能用到的所有依赖。
2025-05-02 11:31:57 +08:00
5ce738bdfc docs: 完善 javadoc 2025-05-01 03:46:03 +08:00
97a4ae2279 perf: RegexTools 的缓存改用 guava cache 2025-05-01 02:15:23 +08:00
af66cd2380 feat: RegexTools 新增重载方法,当将字符串视为正则表达式入参时,允许传对应的 flags 2025-05-01 02:08:23 +08:00
3b519105bf refactor!: 删除 RegexTools 中以 String[] 作为多个正则表达式入参的方法
字符串无法代表一个正则表达式,还需考虑正则表达式的 flag(s),所以当使用多个正则表达式时,更推荐使用 `Pattern[]`。
2025-04-30 22:57:47 +08:00
b70e526509 docs: 修改段落问题
Signed-off-by: zhouxy108 <luquanlion@outlook.com>
2025-04-30 22:47:49 +08:00
a2781012be feat: 在 AssertTools 中新增 checkArgumentNotNull 系列方法 2025-04-30 22:44:29 +08:00
9e410029b1 refactor: 修改 AssertTools 中的参数名称 2025-04-30 22:17:18 +08:00
ee7213a687 refactor(util): ArrayTools 中的 isNullOrEmpty 重命名为 isEmpty
保持方法命名的一致性

BREAKING CHANGE: `ArrayTools#isNullOrEmpty` 重命名为 `ArrayTools#isEmpty`
2025-04-29 11:26:12 +08:00
45dc105dd0 fix: 修复 JDK17+ 环境下测试用例 PagingAndSortingQueryParamsTests#testGson 不通过的问题
该用例在 JDK17+ 环境下使用 gson 进行序列化时,报 `com.google.gson.JsonIOException: Failed making field 'java.time.LocalDateTime#date' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type`。

See: https://github.com/google/gson/blob/main/Troubleshooting.md#reflection-inaccessible
2025-04-16 14:52:16 +08:00
c779430e6f chore: 更新依赖
依赖:
- guava: `33.4.0-jre` 更新到 `33.4.2-jre`;
- joda-time: `2.13.0` 更新到 `2.14.0`;

*测试依赖:
- junit: `5.11.4` 更新到 `5.12.1`;
- hutool: `5.8.35` 更新到 `5.8.37`;
- jackson: `2.18.2` 更新到 `2.18.3`;
2025-04-16 14:32:12 +08:00
14b193418d docs: fix param name
Reviewed-on: #43
Co-authored-by: ZhouXY108 <luquanlion@outlook.com>
Co-committed-by: ZhouXY108 <luquanlion@outlook.com>
2025-04-11 14:42:01 +08:00
56a4a606a6 refactor: 优化 OptionalTools 代码 2025-04-09 22:11:21 +08:00
7abd3a05ab refactor: UnifiedResponse 的字段为 final 2025-04-09 21:45:04 +08:00
a05fc6cfe1 style: 格式化代码 2025-04-09 21:44:59 +08:00
bca4ce531a chore: 添加 cspell 配置文件 2025-04-09 21:41:26 +08:00
4b9c0de860 chore: update copyright info (#42)
Reviewed-on: #42
Co-authored-by: ZhouXY108 <luquanlion@outlook.com>
Co-committed-by: ZhouXY108 <luquanlion@outlook.com>
2025-04-09 18:16:55 +08:00
0f802db105 docs: 完善 javadoc 2025-04-09 18:16:54 +08:00
7606a4263c fix: 补充 ThrowingPredicate 缺失的 FunctionalInterface 注解 2025-04-09 18:16:54 +08:00
f05e804795 chore: ArrayTools 中删除已完成的 TODO 注释 2025-04-09 18:16:54 +08:00
36d05045cf refactor!: 限制 PagingAndSortingQueryParams 中用于排序的字段名称的长度,允许包含短横(-) 2025-04-09 18:16:54 +08:00
05c30109ec chore: 抑制测试代码的一些警告 2025-04-09 18:16:54 +08:00
6f26613f30 refactor!: 重命名 ArrayTools 中的方法
`indexOfWithPredicate` 重命名为 `indexOf`,
`lastIndexOfWithPredicate` 重命名为 `lastIndexOf`。
2025-04-09 18:16:54 +08:00
9ad82bdb57 refactor!: RegexTools 中使用 ArrayTools#isAllElementsNotNull 判断数组
BREAKING CHANGE: 数组为 `null` 时,不抛出 `NullPointerException`,而是 `IllegalArgumentException`。
2025-04-09 18:16:54 +08:00
7babf0953a refactor: 重构 Chinese2ndGenIDCardNumber
不使用 ValidatableStringRecord,在工厂方法中进行参数校验。
2025-04-09 18:16:54 +08:00
09c6f41610 chore: 弃用 ValidatableStringRecord 2025-04-09 18:16:54 +08:00
eda835996e refactor: IDCardNumber#toDesensitizedString 使用 StringTools#desensitize 进行脱敏 2025-04-09 18:16:54 +08:00
2396b78c4f feat: 新增字符串脱敏方法 StringTools#desensitize 2025-04-09 18:16:54 +08:00
6a498c301d docs: 完善 javadoc 2025-04-09 18:16:54 +08:00