SmartMVC
全部文档
指南
功能
认证授权
示例
参考
  • 简体中文
  • English
  • 日本語
  • Русский
GitHub
全部文档
指南
功能
认证授权
示例
参考
  • 简体中文
  • English
  • 日本語
  • Русский
GitHub
SMARTMVC 1.0SPRING BOOT 3.2+

该做的,都帮你做好。
不该做的,一律不碰。

SmartMVC 把统一响应、异常处理、日期时间、请求日志和认证授权这些重复的 MVC 基础工作收拢起来。它不接管业务逻辑,不强迫你继承基类,也不替你决定 Spring Web 与 Bean Validation 的版本。你仍然用熟悉的方式写 Spring MVC。

从这里开始↗浏览完整目录
Java 17+IDE 配置补全Core 不依赖 Spring
request.traceLIVE
GET/api/orders/100118 ms
01
找到 ControllerOrderController#get
✓
02
按配置检查认证role: admin · GET:/api/orders/**
✓
03
整理统一响应ApiResponse<OrderView>
HTTP/1.1200 OK
{
  "success": true,
  "code": "OK",
  "message": "success",
  "data": { "id": "1001" },
  "timestamp": "1786006933924"
}
替你处理重复,不替你做决定01 — 05

有能力,也有边界

重复的事交给框架。 重要的决定留给你。

01

统一接口约定

成功响应、错误响应和字段校验详情使用稳定结构,客户端可以统一处理。

02

集中管理 MVC 配置

日期格式、时区、日志级别和认证范围都位于 spring.smart.mvc 命名空间。

03

保留应用控制权

核心模型不依赖 Spring,关键 Bean 和认证过程都可以由应用替换。

主要能力

从你最关心的地方 开始。

每项能力都有独立的入口和清晰的边界。你可以按顺序学,也可以直接进入今天正好需要的那一项。

查看全部文档 →
01

统一响应

统一响应与包装

普通 Controller 返回值自动包装为 ApiResponse;ApiResponse、byte[]、Resource、StreamingResponseBody 和 ProblemDetail 保持原样。查看功能 ↗
2xxsuccesscodemessagedatatimestamp
02

异常处理

异常与校验

常用 HTTP 异常、业务错误和 Bean Validation 使用同一错误结构。查看功能 ↗
400401403404422503
03

日期时间

日期与时间

统一处理 LocalDate、Instant、OffsetDateTime、ZonedDateTime 和 Date。查看功能 ↗
11:02:13Asia/Shanghai
04

认证授权

认证授权

支持 GLOBAL、ANNOTATED、角色、命名权限和 METHOD:PATH 请求权限。查看功能 ↗
CurrentAuth请求隔离
05

请求日志

请求日志

使用实际 Controller 作为日志类别,记录状态码和处理耗时。查看功能 ↗
INFOOrderController18 ms

当前认证

在任何 Spring Bean 中 读取当前用户。

CurrentAuth 是可注入的单例门面,身份数据按同步 Servlet 请求隔离,并在请求完成后清理。

了解认证授权 →
Spring 单例CurrentAuth只提供访问门面
REQ / 01Adaadmin · order:read
REQ / 02Linuser · profile:read
REQ / 03匿名请求不创建身份

保持熟悉的写法

Controller 仍然只是 Controller。

无需继承框架基类,也无需为每个返回值手工创建响应包装。

  • 只需额外添加一个 SmartMVC 依赖
  • IDE 可补全全部配置
  • 关键扩展点可以替换
@GetMapping("/orders/{id}")
public OrderView get(@PathVariable Long id) {
    return orderService.get(id);
}
→{ success: true, code: "OK", data: … }

从基础开始

先运行第一个接口,再按需要逐项深入。

阅读快速开始↗
SmartMVC让 Spring MVC 项目更统一、更容易维护。Apache-2.0 · 2026