最近在跟着师傅做一个项目,师傅让我看看后端代码,我自己总结了一下这套Spring后端架构。
所以这个后端逻辑就是,springboot能检测到前端发来的请求,找到对应的controller,对应的controller找到对应的service接口,service接口找到实现类,实现类编辑逻辑操作DAO层的Mapper找xml实现具体的增删改查。成功后controller向前端发送响应。让AI帮我梳理一下就是:
Spring Boot 后端处理流程
下面是更加详细的说明:
graph TD
A[前端发送请求] --> B[Spring Boot DispatcherServlet]
B --> C[RequestMapping匹配到Controller]
C --> D[Controller调用Service接口]
D --> E[Spring注入对应的Service实现类]
E --> F[Service实现类执行业务逻辑]
F --> G[调用DAO层Mapper接口]
G --> H[MyBatis执行Mapper XML中的SQL]
H --> I[(数据库)]
I --> H
H --> G
G --> F
F --> J[处理业务结果]
J --> K[返回结果给Controller]
K --> L[ResponseAdvice统一处理响应]
L --> M[返回JSON响应给前端]
subgraph 认证拦截
N[AuthInterceptor] --> O[检查Token认证]
end
B --> N
O -->|认证通过| C
详细步骤分解:
-
请求接收:
- Spring Boot 的 DispatcherServlet 接收所有 HTTP 请求
- 根据 URL 路径匹配到对应的 Controller 方法
-
认证拦截(如果需要):
- AuthInterceptor 拦截请求进行 Token 验证
- 检查是否有 @NoAuth 注解跳过认证
-
Controller 层处理:
- Controller 接收请求参数,通常封装为 BO 对象
- 调用注入的 Service 接口方法
-
Service 层业务逻辑:
- 实现类处理具体业务逻辑
- 参数校验、数据处理、业务规则执行
- 调用 DAO 层进行数据操作
-
DAO 层数据访问:
- Mapper 接口方法调用
- MyBatis 根据 namespace 和 method name 找到对应的 XML SQL 语句
- 执行数据库操作并返回结果
-
响应处理:
- Service 处理结果返回给 Controller
- ResponseAdvice 统一封装响应格式
- 返回 JSON 格式的响应给前端
-
日志记录:
- RequestLogAspect 切面记录操作日志
这种分层架构的优点:
- 职责分离:各层职责明确,便于维护和扩展
- 可测试性:每层都可以独立测试
- 可复用性:Service 和 DAO 可以被多个 Controller 复用
- 松耦合:通过接口隔离具体实现
这就是典型的基于 Spring Boot + MyBatis-Plus 的企业级后端架构流程。