Spring MVC架构中的M、V、C分别对应哪些组件?
Spring MVC 与标准 MVC 模式的对应关系说明
你提到的对应关系整体成立,仅部分概念需要做边界区分,具体解释如下:
- Spring MVC 的 Controller 对应 MVC 的 C 层:被
@Controller、@RestController注解标注的控制器,核心职责就是接收用户请求、校验请求参数、调度业务服务处理逻辑、组装响应数据或指定跳转视图,和标准 MVC 定义中「作为请求入口、协调模型与视图完成交互」的控制层定位完全一致。 - Model/Entity 不完全等同于 MVC 的 M 层:标准 MVC 中的 M(Model 模型层)指承载业务数据、封装业务逻辑的领域模型集合,Spring MVC 中
Model、ModelAndView对象携带的所有响应数据都属于 M 层的范畴。日常开发中说的 Entity(实体类)通常只是和数据库表做映射的持久化对象,属于 M 层的一部分而非全部,只有当它被放到 Spring 的模型对象中传递给视图层时,才在当前请求链路里充当 M 层的载体。 - Thymeleaf、HTML 对应 MVC 的 V 层:二者的核心作用都是将模型层携带的数据渲染为用户可交互的可视化界面,不管是服务端渲染场景下的 Thymeleaf 模板,还是前后端分离架构下的前端 HTML 页面,都是负责数据展示的视图层载体,完全符合 MVC 中 View 层的定义。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

