当前位置: 首页 > news >正文

Spring中@Controller和@RestControlle注解的区别

  在Spring框架中,@Controller和@RestController都是用于处理HTTP请求的注解,但它们在使用方式和返回类型上有显著区别。


1.@Controller

  • 用途:传统的Spring MVC控制器,通常用于返回视图(如JSP、Thymeleaf等),但也可以返回数据(需配合 @ResponseBody)。
  • 返回类型
    • 默认返回视图名称(由视图解析器渲染为HTML页面)。
    • 若需返回JSON/XML等数据,需在方法上额外添加@ResponseBody注解。
  • 适用场景:需要服务端渲染页面(SSR)或混合返回视图和数据的场景。

示例代码:

@Controller
@RequestMapping("/web")
public class WebController {// 返回视图名称(渲染为HTML)@GetMapping("/home")public String home() {return "home-page"; // 对应src/main/resources/templates/home-page.html}// 返回JSON数据(需@ResponseBody)@ResponseBody@GetMapping("/data")public User getUser() {return new User("Alice", 25);}
}

2.@RestController

  • 用途:专为RESTful API设计,所有方法默认返回数据(JSON/XML),而非视图。
  • 本质:是 @Controller@ResponseBody 的组合注解(即所有方法自动添加@ResponseBody)。
  • 适用场景:纯API服务(前后端分离架构),无需视图渲染。

示例代码:

@RestController
@RequestMapping("/api")
public class ApiController {// 自动返回JSON(无需@ResponseBody)@GetMapping("/user")public User getUser() {return new User("Bob", 30);}// 直接返回字符串@GetMapping("/hello")public String sayHello() {return "Hello, World!";}
}

3.关键区别总结

特性@Controller@RestController
​默认返回类型视图名称数据(自动@ResponseBody)
​ 组合注解@Controller + @ResponseBody
适用场景服务端渲染(SSR)或混合应用纯REST API(前后端分离)
​ 是否需要@ResponseBody需要(返回数据时)不需要(已内置)

如何选择?

  • 如果开发传统Web应用​(含页面渲染),使用@Controller。
  • 如果开发纯API服务​(如React/Vue前端调用),使用@RestController。

通过理解两者的差异,可以更高效地设计Spring应用的架构。

相关文章:

  • Python爬虫监控程序设计思路
  • JVM-内存结构
  • ​​食品电商突围战!品融电商全平台代运营,助您抢占天猫京东抖音红利!
  • Scrapy爬虫框架Spiders爬虫脚本使用技巧
  • Halcon光度立体法
  • Python训练第四十三天
  • DHCP 动态主机配置协议(Dynamic host configuration protocol)逐层封装过程: DHCP --> UDP --> IP
  • 相机Camera日志分析之二十四:高通相机Camx 基于预览1帧的process_capture_request三级日志分析详解
  • KITTI数据集(计算机视觉和自动驾驶领域)
  • Java编程之建造者模式
  • 项目课题——基于ESP32的智能插座
  • 24.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--认证微服务
  • 英福康INFICON VGC501, VGC502, VGC503 单通道、双通道和三通道测量装置
  • AspectJ 在项目中的集成应用代码案例
  • VR教育:开启教育新时代的钥匙
  • Rhino插件大全下载指南:解锁犀牛潜能,提升设计效率
  • 基于大模型的慢性硬脑膜下血肿预测与诊疗系统技术方案
  • LabVIEW基于 DataSocket从 OPC 服务器读取数据
  • 【机器学习及深度学习】机器学习模型的误差:偏差、方差及噪声
  • HDFS 写入和读取流程
  • 浙江有限公司网站/万能优化大师下载
  • 网站建设马鞍山/整合营销策略有哪些
  • 用数据库做学校网站/网络服务是什么
  • 做网站不如做公众号/网站关键词排名优化工具
  • 网页微博登录/吉林网络seo
  • 百度网网站建设的目标/店铺如何运营和推广