项目地址:github.com/ChildrenGre...
Maven Central:
com.childrengreens:web-spring-boot-starter
一、为什么要做这个 Starter?
在日常 Java 开发中,Web 层的重复劳动非常多:
- 每个项目都要写一套统一返回体;
- 各种 Controller 需要统一异常处理;
- 跨域、时间格式、JSON 序列化到处重复配置;
- 日志打印、响应封装到处复制粘贴。
为了让 Spring Boot 项目做到 "一次配置,全局生效" ,我开发了一个轻量级的 Starter ------
二、项目简介
一个轻量级 Web 层 Starter,为 Spring Boot 提供:
- 统一返回体封装
- 全局异常处理
- JSON 格式化配置
- 全局拦截器与跨域支持
- 响应包装与日志增强
📦 Maven 引入:
xml
<dependency>
<groupId>io.github.childrengreens</groupId>
<artifactId>web-spring-boot-starter</artifactId>
<version>0.0.1</version>
</dependency>
三、核心特性
✅ 统一返回体结构
json
{
"code": "BUSINESS_ERROR",
"message": "Login required",
"data": null,
"traceId": "a8ad0b6ee5c84fab"
}
所有 Controller 返回数据自动包装,无需手写 Result.ok()。
⚙️ 全局异常处理
捕获业务异常、参数校验异常、系统异常,让返回格式始终一致。
🌍 JSON 与 CORS 配置
默认开启跨域,支持覆盖。内置 Jackson 序列化配置:
- Long → String(防止前端精度丢失)
- 统一日期格式
- 忽略 null 字段
🧩 拦截器与日志增强
提供可扩展的 Web 拦截器接口,可实现 traceId、header 校验、请求日志记录等。
四、快速上手
示例:
java
@RestController
class StatusController {
@GetMapping("/status")
StatusPayload status() {
return new StatusPayload("UP");
}
record StatusPayload(String state) { }
}
访问结果:
json
{
"code": "0",
"message": "OK",
"data": {
"state": "UP"
},
"traceId": "a8ad0b6ee5c84fab"
}
无需额外封装,即可自动应用统一格式。
五、适用场景
- 多模块 Spring Boot 项目;
- 企业级 Web 层规范;
- 微服务网关与后端交互接口统一;
- 快速构建标准化 API 服务。
六、贡献与反馈
欢迎在 GitHub 提交 PR 或 Issue: