You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

后端仅返回JSON给前端,是否仍用Spring MVC?@Controller是否符合MVC定义?

关于你的MVC架构困惑,咱们一步步理清楚

1. React前端调用后端Controller接口,算不算MVC模式?

首先得明确:传统MVC是服务器端渲染的架构,用户和控制器交互后,控制器直接修改服务器端的视图模板,再把渲染好的页面返回给用户。但现在你用的是前后端分离架构,这是MVC思想在现代Web开发中的演化,不能直接套传统MVC的定义:

  • 你的React前端本质是前端视图层(甚至可以看作前端MVVM/组件化架构),它负责处理用户交互、渲染界面,通过HTTP请求从后端拿数据,自己完成视图更新,不需要后端直接控制视图。
  • 后端的Controller+Service+Model其实是后端的分层MVC变种:Controller负责接收前端请求、路由到对应的业务逻辑(Service),Service处理核心业务,Model是数据实体/数据模型。

所以整体来看,你的应用是基于MVC思想的前后端分离分层架构,不是传统意义上的单块MVC,但核心的“职责分离、解耦”思想和MVC是一致的,完全可以在论文里说明这是MVC模式的现代实践。

2. Spring的@Controller是不是MVC定义中的控制器?

传统MVC定义里的控制器确实需要处理业务逻辑,但那是早期单块架构的设计,现代后端开发为了符合单一职责原则,把控制器的职责拆分了:

  • @Controller的核心职责是请求入口和路由转发:它只负责接收HTTP请求、参数解析,然后把请求交给Service层处理业务逻辑,最后把处理后的结果(数据)返回给前端。
  • 虽然它没有直接处理业务逻辑,但它依然是MVC模式中“控制器”的角色——承接用户请求,协调业务层和数据层的交互,只是把业务逻辑的职责剥离到了Service层,这是架构优化的结果,而非偏离MVC。

简单说:@Controller是MVC定义中控制器的现代化、职责拆分后的版本,完全符合MVC模式中“控制器作为请求协调者”的核心定位。

最后给你的论文建议

你可以把你的应用架构描述为:前后端分离的分层架构,前端采用React实现视图层交互与渲染,后端基于Spring MVC框架实现业务逻辑分层(@Controller负责请求路由,Service层处理核心业务,Model层定义数据实体),整体遵循MVC模式的职责分离与解耦思想。这样既准确,又能体现你对现代架构的理解~

内容的提问来源于stack exchange,提问作者ErayZaxy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:36:09