欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > SpringMVC 执行流程

SpringMVC 执行流程

2025/11/6 1:36:21 来源:https://blog.csdn.net/2201_75559074/article/details/147259883  浏览:    关键词:SpringMVC 执行流程

前言:

在前后端分离的情况下,SpringMVC 的执行流程主要集中在处理 RESTful 请求和返回 JSON 数据。这里的 Controller 会直接返回数据,而不是视图。我们通常会使用 @RestController@RequestMapping 来处理请求,@ResponseBody 会让返回的数据自动转换成 JSON 格式。下面是简化后的流程:

一、SpringMVC 执行流程概述

  1. 请求到达 DispatcherServlet:客户端发起请求,由 DispatcherServlet 拦截并处理。
  2. 请求映射(Handler Mapping)DispatcherServlet 根据请求 URL 和 HTTP 方法查找对应的处理方法。
  3. 调用 Controller 方法DispatcherServlet 将请求交给对应的 Controller 方法处理,通常是业务逻辑处理。
  4. 返回 JSON 数据:Controller 处理完请求后,将结果以 JSON 格式返回,通常不使用 ModelAndView
  5. 响应返回客户端:SpringMVC 会将 Controller 返回的 JSON 数据作为 HTTP 响应发送到客户端。

二、详细解析 SpringMVC 执行流程

1. 请求到达 DispatcherServlet

在前后端分离的架构中,请求还是由 DispatcherServlet 进行拦截和处理。不同的是,DispatcherServlet 会选择合适的 HandlerMapping 来找到对应的 RESTful 控制器。

2. 请求映射(Handler Mapping)

SpringMVC 中的 HandlerMapping 会根据 URL 和 HTTP 方法(如 GET、POST)来找到对应的 Controller 方法。

例如,使用 @RestController@RequestMapping 注解时:

@RestController
public class UserController {@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)public User getUser(@PathVariable("id") Long id) {return userService.findUserById(id);  // 返回一个 User 对象}
}

在这个例子中,当客户端发送一个 GET 请求到 /user/{id} 时,DispatcherServlet 会找到 getUser 方法来处理该请求。

3. 调用 Controller 方法

Controller 方法接收到请求后,通常会执行业务逻辑,处理请求参数,并返回一个对象(通常是 POJO 或 DTO)。这个对象会自动转换成 JSON 格式并作为 HTTP 响应返回给客户端。

如果 Controller 方法返回一个对象,Spring 会通过 Jackson 或其他 JSON 处理库自动将该对象转化为 JSON 格式。

4. 返回 JSON 数据

在前后端分离的架构中,@RestController 使得 Controller 的返回值自动转换为 JSON 格式。你不需要手动创建 ModelAndView 对象,只需要返回业务逻辑处理后的对象,Spring 会自动将它转换成 JSON 响应。

例如:

@RestController
public class UserController {@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)public User getUser(@PathVariable("id") Long id) {User user = userService.findUserById(id);return user;  // 直接返回一个 POJO 对象,Spring 会自动转换为 JSON}
}

这里,User 对象会被自动转换成 JSON 格式,如:

{"id": 1,"name": "John Doe","age": 30
}

5. 响应返回客户端

SpringMVC 会将 Controller 返回的 JSON 数据作为 HTTP 响应的内容,发送给客户端,通常是前端应用(如 React、Vue.js)或移动应用(如 Android、iOS)进行处理和展示。

客户端接收到 JSON 数据后,可以通过 JavaScript 或其他技术解析数据并展示给用户。

三、简化的前后端分离流程

客户端请求 --> DispatcherServlet--> Handler Mapping --> Controller--> 执行业务逻辑 --> 返回 POJO 对象--> Spring 自动将 POJO 转换为 JSON--> 响应返回客户端

总结

在前后端分离的架构中,SpringMVC 的执行流程简化了很多,关键的变化是:

  • 不再需要 ModelAndView:Controller 直接返回对象,Spring 自动将其转换为 JSON 格式。
  • 无视图解析:因为不再涉及 JSP 或其他视图技术,Spring 不需要渲染视图。
  • 数据返回:主要关注数据的处理和返回,响应体中通常是 JSON 数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词