用了这个 Web Starter,我再也不用手写返回体和异常处理了!

119 阅读3分钟

📦 项目地址:github.com/ChildrenGre…
💡 Maven Central: com.childrengreens:web-spring-boot-starter
✍️ 作者:ChildrenGreens | Java 开发工程师


💬 你是不是也有这样的痛点?

是不是每次新建 Spring Boot 项目,都要做这些重复的活?

  • 写一套 统一返回体类
  • 再加一个 全局异常处理
  • 配置 CORS、JSON 格式化
  • 甚至每个项目都 copy 一遍 日志拦截器

这些通用逻辑,其实没必要重复造轮子。
于是我干脆写了一个 开箱即用的 Starter ——
👉 web-spring-boot-starter

一次引入,就能让项目具备:

✅ 统一返回体
✅ 全局异常处理
✅ CORS 跨域
✅ JSON 格式化
✅ 请求拦截与日志增强

真正做到「一次配置,全局生效」。


🚀 一、为什么要写这个 Starter?

在我们公司内部的项目中,每个微服务都需要对接外部系统或前端应用。
然而每个服务的 Controller 层写法都不统一:

  • 有的返回 Map;
  • 有的直接返回对象;
  • 有的 JSON 序列化格式完全不同;
  • 异常处理逻辑五花八门。

结果是 ——
维护成本高、统一规范难、测试同学也一头雾水。

我希望能用一个 Starter,彻底解决这些重复问题
于是就有了这款工具。


✨ 二、核心特性一览

功能说明
✅ 统一返回体所有 Controller 返回自动包装为 {code, message, data}
⚙️ 全局异常处理内置业务异常、校验异常、系统异常捕获
🌍 CORS 配置默认跨域支持,可覆盖
🕓 JSON 格式化Long → String(防止前端精度丢失),统一时间格式
🧩 拦截器扩展traceId、header 校验、请求日志记录等

📦 三、快速上手

Maven 引入:

<dependency>
  <groupId>com.childrengreens</groupId>
  <artifactId>web-spring-boot-starter</artifactId>
  <version>0.0.1</version>
</dependency>

示例 Controller:

@RestController
class StatusController {

    @GetMapping("/status")
    StatusPayload status() {
        return new StatusPayload("UP");
    }

    record StatusPayload(String state) { }
}

访问结果:

{
  "code": "0",
  "message": "OK",
  "data": {
    "state": "UP"
  },
  "traceId": "a8ad0b6ee5c84fab"
}

无需封装、无需注解,统一响应自动生效 ✅


⚙️ 四、全局异常自动处理

当发生异常时(比如参数错误、空指针、业务异常),返回结果也会自动包装:

{
  "code": "BUSINESS_ERROR",
  "message": "Login required",
  "data": null,
  "traceId": "a8ad0b6ee5c84fab"
}

可自定义异常类型与错误码,统一返回格式,彻底告别 try-catch 混乱局面。


🌍 五、JSON 与 CORS 配置默认开启

  • 默认开启 CORS 跨域,支持任意来源访问;
  • 统一 Jackson 配置,自动支持:
    • Long → String;
    • LocalDateTime 统一格式;
    • null 字段自动过滤。

想要自定义?
在配置文件中覆盖即可,无侵入、可扩展。


🧱 六、适用场景

  • 🧩 多模块项目:统一 Web 层行为;
  • 🏢 企业后端系统:减少样板代码;
  • 🧠 微服务体系:保持服务间返回结构一致;
  • 快速开发脚手架:开箱即用,提升项目启动速度。

📈 七、Roadmap(后续规划)

未来版本计划支持:

  • 响应包装开关;
  • 多语言 i18n;
  • 统一错误码字典;
  • 更灵活的 ResponseAdvice 策略。

💬 八、最后的几句话

这个 Starter 的目标很简单:

让 Spring Boot Web 层的重复工作彻底消失。

如果你也受够了 copy-paste 式的控制层配置,
欢迎试试这个项目,也欢迎给我提建议!


🌟 九、开源项目链接

如果觉得有用,

请点一个 Star 🌟
这是对开源作者最好的鼓励 ❤️


🎨 封面图推荐文案(Banner)

标题: Spring Boot 一键统一 Web 层
副标题: 返回体、异常、CORS、日志全搞定
作者署名: ChildrenGreens | 开源项目


作者:ChildrenGreens
Java 开发工程师 | Spring Boot | AIGC | 高性能服务架构
GitHub: github.com/ChildrenGre…