feat:增加SpringAOP文档
This commit is contained in:
@@ -4,37 +4,37 @@
|
||||
---
|
||||
|
||||
# 一、基础概念
|
||||
  Spring MVC(Spring Model-View-Controller)是 Spring Framework 中的一部分,它是一个基于 **<font style="color:#DF2A3F;">请求驱动</font>** 的 Web 框架,主要用于构建 Web 应用程序,并且遵循 MVC(模型-视图-控制器) 设计模式。它将 Web 应用的业务逻辑、用户界面和请求处理分离,使得代码更加模块化和可维护。
|
||||
  Spring MVC(Spring Model-View-Controller)是 Spring Framework 中的一部分,它是一个基于 **请求驱动** 的 Web 框架,主要用于构建 Web 应用程序,并且遵循 MVC(模型-视图-控制器) 设计模式。它将 Web 应用的业务逻辑、用户界面和请求处理分离,使得代码更加模块化和可维护。
|
||||
|
||||
# 二、具体流程
|
||||

|
||||
|
||||
1. **客户端发起HTTP请求**
|
||||
1. 客户端发起HTTP请求
|
||||
|
||||
  客户端(浏览器、API 客户端等)向服务器发送 HTTP 请求。请求包含了目标 URL、HTTP 方法(GET、POST 等)以及可能的请求参数。
|
||||
前端通过发送 HTTP 请求(通常是 AJAX 请求)到后端的 API 端点,并期望获得响应(通常是 JSON 数据)。
|
||||
|
||||
2. **请求到达 DispatcherServlet**
|
||||
2. 请求到达 DispatcherServlet
|
||||
|
||||
  所有 HTTP 请求都会先到达 Spring MVC 的核心组件:**<font style="color:#DF2A3F;">DispatcherServlet</font>**。它是前端控制器,负责将请求分发给正确的处理器。DispatcherServlet 是所有请求的入口,Spring Boot 会自动配置它。
|
||||
  所有 HTTP 请求都会先到达 Spring MVC 的核心组件:**DispatcherServlet**。它是前端控制器,负责将请求分发给正确的处理器。DispatcherServlet 是所有请求的入口,Spring Boot 会自动配置它。
|
||||
  DispatcherServlet 接受所有的 HTTP 请求,根据请求 URL 和 HTTP 方法,定位匹配的控制器方法,将请求交给相应的 Handler Mapping 来匹配控制器。在请求处理前后,执行 拦截器(可选)。最终通过 View Resolver 返回一个合适的视图(对于 RESTful API,通常返回 JSON 格式的数据)。
|
||||
|
||||
3. **查找处理器(Handler Mapping)**
|
||||
3. 查找处理器(Handler Mapping)
|
||||
|
||||
  DispatcherServlet 根据请求的 URL 和 HTTP 方法,查找与之匹配的处理器方法(通常是一个控制器中的方法)。这是由 HandlerMapping 完成的。Spring MVC 提供了多种方式来映射 URL 到控制器方法,例如 @RequestMapping、@GetMapping 等注解。
|
||||
  @RestController:该注解标记的类会返回 JSON 数据。
|
||||
  @RequestMapping:用于映射 URL 路径和 HTTP 方法。
|
||||
  @GetMapping、@PostMapping 等:简化版本的 @RequestMapping。
|
||||
|
||||
4. **执行拦截器(Interceptor)**
|
||||
4. 执行拦截器(Interceptor)
|
||||
|
||||
  在请求到达控制器之前,DispatcherServlet 会依次执行配置的拦截器。拦截器主要用于日志记录、安全检查、请求参数的预处理等。
|
||||
  preHandle:请求进入控制器方法之前。
|
||||
  postHandle:请求完成后,视图渲染之前。
|
||||
  afterCompletion:视图渲染完成后。
|
||||
  **<font style="color:#DF2A3F;">如果拦截器的 preHandle 方法返回 false,请求会被拦截,后续的处理不会继续进行。</font>**
|
||||
  **如果拦截器的 preHandle 方法返回 false,请求会被拦截,后续的处理不会继续进行。**
|
||||
|
||||
5. **控制器方法处理请求(Handler Execution)**
|
||||
5. 控制器方法处理请求(Handler Execution)
|
||||
|
||||
  DispatcherServlet 调用合适的控制器方法来处理请求。控制器方法负责处理请求的业务逻辑,并返回一个 Java 对象,这个对象会被自动转换成 JSON 格式返回给客户端。
|
||||
  Spring 通过 @ResponseBody 注解(或 @RestController)实现将 Java 对象自动转换为 JSON 格式。默认情况下,Spring 使用 Jackson 来将 Java 对象序列化成 JSON 数据。
|
||||
@@ -43,7 +43,7 @@
|
||||
  @RequestParam:用于获取单个请求参数。
|
||||
  @PathVariable:用于从 URL 中提取变量(如 /users/{id} 中的 {id})。
|
||||
|
||||
6. **响应返回客户端**
|
||||
6. 响应返回客户端
|
||||
|
||||
  DispatcherServlet 将处理完的结果(JSON 数据)返回给客户端。响应数据通常会包含:
|
||||
  **状态码**:如 200 OK(成功)、201 Created(资源创建成功)、404 Not Found(资源未找到)、500 Internal Server Error(服务器错误)等。
|
||||
|
||||
Reference in New Issue
Block a user