@Controller和@RestController的区别

@Controller@RestController都是Spring MVC框架中的注解,用于标识一个类是Spring MVC controller处理器,可以接收HTTP请求,但它们的主要区别在于目标和方法返回的类型。

@Controller注解主要用来接收HTTP请求并返回最终页面,即典型的MVC模式中的"C",控制器的动作主要是转发和跳转。如果一个类用@Controller注解,那么它的方法可以返回String、ModelAndView、Map<String, Object>等类型,用于填充视图。

@RestController注解是@Controller@ResponseBody的结合体,它也用于接收HTTP请求,但主要是用来返回JSON、XML等数据格式。也就是说,如果需要返回JSON、XML等数据格式,那么应该使用@RestController注解。在@RestController注解的类中,方法只能返回Java Bean、String、Integer、Double、Boolean等类型的数据,Spring会将这些数据转化为JSON或XML格式。

总结起来,如果需要返回的是HTML页面,应该使用@Controller注解;如果需要返回的是JSON格式的数据,应该使用@RestController注解。

相关推荐
岁月如歌77868 小时前
分布式锁完全指南:从数据库到 Redisson 的演进
java·后端·架构
AI深栈8 小时前
第 8 章 · Tool Calling 与 Tool Search
java·人工智能
写后端的胖头鱼8 小时前
【高频面试题】spring事物失效场景(带原理 + 代码示例)
java·后端·spring·事务·事物失效
小孩玩什么8 小时前
深入理解字符串匹配算法:BF算法,KMP算法
java·c语言·开发语言·数据结构·c++·算法
长谷深风1119 小时前
Agent执行系统中的身份与版本设计
java·大数据·人工智能·ai·大模型·task·aiagent
Wang's Blog9 小时前
Java框架快速入门: Spring Security+OAuth2之UserDetails与JDBC认证实践
java·网络·spring
爱从未走散9 小时前
面试八股题
java·面试·职场和发展
艺杯羹9 小时前
AI编程时代软件工程怎么学:从底层思维认知到驱动智能体的架构跃迁
java·人工智能·ai·架构·软件工程·ai编程
土司大王9 小时前
LeetCode hot100——51.N 皇后:Java 回溯模板、列与对角线剪枝、O(n!) 复杂度分析
java·leetcode·剪枝
重生之小比特9 小时前
【Java SE】IDEA 调试 Debug 案例完整分析
java·ide·intellij-idea