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

相关推荐
旋律41437 分钟前
同义方法区别(增加类与删除类)
java·后端
学到老活到老39 分钟前
方法执行完了,对象为什么还占着内存?
java·jvm
用户77712985091239 分钟前
常见的同义方法的区别:增加类和删除类
java·后端
十年Java程序媛1 小时前
Java this 与 super 详解|继承高频踩坑 + 面试题整理
java·spring boot·面试
用户7771298509121 小时前
Stream流式使用
java
旋律4141 小时前
List、Set、Map:三个装数据的容器,到底啥区别?怎么遍历?
java·后端
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 回顾和今日内容介绍
java·开发语言·交友
工具派1 小时前
不重写一行老代码:给 Spring Boot 系统加一层 AI 能力
java·人工智能·spring boot
aiks_yuan1 小时前
RestTemplate 废弃后迁移 RestClient 实战:Spring Boot 4.2 升级指南
spring boot