@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注解。

相关推荐
Zachery Pole8 分钟前
JAVA_04_判断与循环
java·开发语言
Volunteer Technology14 分钟前
LangGraph的WorkFlow(一)
java·服务器·windows
懒惰成性的15 分钟前
11.Java的String类
java·开发语言
金牌归来发现妻女流落街头18 分钟前
【Spring Boot 中 ResponseEntity 用法全解析】
spring boot·后端
金牌归来发现妻女流落街头25 分钟前
Lombok 真有问题吗?
spring boot·框架
FoldWinCard30 分钟前
Python 第三次作业
java·服务器·python
傻啦嘿哟32 分钟前
Python列表排序:用key参数掌控排序规则
java·开发语言
+VX:Fegn089537 分钟前
计算机毕业设计|基于springboot + vue动漫交流与推荐平台系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
大尚来也1 小时前
解决 IDEA 运行 Spring Boot 测试时“命令行过长”错误的终极方案
java·spring boot·intellij-idea
云姜.1 小时前
如何在idea上使用数据库
java·数据库·intellij-idea