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

相关推荐
月阳羊5 小时前
【硬件-笔试面试题-76】硬件/电子工程师,笔试面试题(知识点:H桥驱动电路的设计要点)
java·单片机·嵌入式硬件·面试·职场和发展
赵星星5205 小时前
MySQL的默认隔离级别:为什么是可重复读(RR)而非读已提交(RC)?
java
用户2018792831675 小时前
故事:公司的 "私人储物柜" 系统(ThreadLocalMap)
android·java
ling__i5 小时前
java day18
java·开发语言
非ban必选5 小时前
netty-scoket.io路径配置
java·服务器·前端
渣哥6 小时前
我和Java 8 Stream相爱相杀的那些年
java
爱吃烤鸡翅的酸菜鱼6 小时前
【Spring】原理解析:Spring Boot 自动配置
java·spring boot
小白兔3536 小时前
一文讲通Unicode规范、UTF-8与UTF-16编码及在Java中的验证
java
十八旬6 小时前
苍穹外卖项目实战(day7-1)-缓存菜品和缓存套餐功能-记录实战教程、问题的解决方法以及完整代码
java·数据库·spring boot·redis·缓存·spring cache
Java微观世界6 小时前
匿名内部类和 Lambda 表达式为何要求外部变量是 final 或等效 final?原理与解决方案
java·后端