# open-framework **Repository Path**: open-cloud-framework/open-framework ## Basic Information - **Project Name**: open-framework - **Description**: 公共sdk,兼容jdk1.8、jdk17 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-22 - **Last Updated**: 2026-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Open-Framework 一个轻量级的 Java 基础工具框架,提供异常处理、响应封装、日期工具、元组等常用功能。 ## 功能特性 - **统一异常处理** - 基于 `BusinessException` 的业务异常体系 - **统一响应封装** - 标准化的 API 响应格式 `R` - **日期时间工具** - Date、LocalDateTime、时间戳之间的便捷转换 - **BigDecimal 工具** - 精确的数值比较 - **元组支持** - 支持 0-5 个元素的元组,方便返回多个值 - **分组校验** - 支持 @Create、@Update 分组校验 - **批量校验** - 支持 ValidList 批量校验列表元素 ## 快速开始 ### Maven 依赖 ```xml jitpack.io https://jitpack.io com.gitee.open-cloud-framework open-framework v1.0.0 ``` ### 基础用法 #### 1. 异常处理 ```java // 抛出业务异常 throw BusinessException.of("操作失败"); // 数据不存在 throw BusinessException.dbNot("用户"); // 参数校验失败 throw BusinessException.val("参数不能为空"); ``` #### 2. 响应封装 ```java @RestController public class UserController { @GetMapping("/user/{id}") public R getById(@PathVariable String id) { User user = userService.getById(id); if (user == null) { throw BusinessException.dbNot("用户"); } return R.success(user); } @PostMapping("/user") public R create(@RequestBody User user) { userService.save(user); return R.success(); } } ``` #### 3. 日期工具 ```java // Date 转 LocalDateTime LocalDateTime dt = LocalDateUtil.dateToLocalDateTime(new Date()); // LocalDateTime 转 String String str = LocalDateUtil.localDateTimeToStr(LocalDateTime.now(), DatePattern.YYYY_MM_DD_HH_MM_SS); // LocalDateTime 转时间戳 Long seconds = LocalDateUtil.localDateTimeToSecond(LocalDateTime.now()); ``` #### 4. BigDecimal 比较 ```java BigDecimal a = new BigDecimal("10.00"); BigDecimal b = new BigDecimal("10"); // 相等比较(值相等) if (BigDecimalCompare.eq(a, b)) { // true } // 大于/小于 if (BigDecimalCompare.gt(a, b)) { // false } ``` #### 5. 元组 ```java // 返回多个值 public Tuple2 calculatePrice(Product p) { String name = p.getName(); BigDecimal price = p.getPrice().multiply(p.getDiscount()); return Tuple2.of(name, price); } // 使用 Tuple2 result = calculatePrice(product); String name = result.f0; BigDecimal price = result.f1; ``` #### 6. 分组校验 ```java @Data public class UserDTO { @NotNull(groups = Update.class) private Long id; @NotBlank(groups = Create.class) private String name; } // Controller @PostMapping("/create") public R create(@Validated(Create.class) UserDTO dto) { } @PostMapping("/update") public R update(@Validated(Update.class) UserDTO dto) { } ``` ## 模块说明 ### exception - 异常处理 - `BusinessException` - 业务异常基类 - `Assert` - 前置条件校验工具 - `BaseException` - 异常基类 ### response - 响应封装 - `R` - 统一响应对象 - `Page` - 分页对象 ### utils - 工具类 - `LocalDateUtil` - 日期时间转换 - `BigDecimalCompare` - BigDecimal 比较 - `LocalDateTimeCompare` - LocalDateTime 比较 - `DatePattern` - 日期格式常量 ### tuple - 元组 - `Tuple0` ~ `Tuple5` - 0-5 元元组 - `TupleFactory` - 元组工厂 - `TupleBuilder` - 元组构建器 - `TupleUtil` - 元组工具 ### validate - 校验 - `Create` - 创建分组 - `Update` - 更新分组 - `ValidList` - 批量校验列表 ### enums - 枚举 - `ErrorEnum` - 标准错误码 ### message - 消息 - `OpenError` - 错误码接口 ## 依赖要求 - Java 8+ - Spring Boot 2.x / 3.x - Jackson (可选) - Validation API (可选) ## 许可证 MIT License