Spring @Controller vs @RestController
2017-04-10 00:00
429 查看
今天在写一段测试代码时,发现一个奇怪的问题,方法正常调用,但是无法正常返回期望的JSON,反而出现一个奇怪的错误页面,代码也没有抛出异常。经过检查发现,误将RestController写成了Controller。所以特意去搜索了两个注解的区别,记录如下。
Controller 属于传统的方式,流程如下:
由图可知,controller返回之后,需要由dispather找到对应的view,然后才返回客户端。而由于需要返回JSON格式,而非某个view,可采用以下方法:
在方法上加上 @ResponseBody
定义方法返回值为ResponseEntity<T>
在spring4.0之后,引入了RestController注解,该注解相当于@Controller + @ResponseBody,简化了API 的开发方式。
参考:
RestController与Controller的对比
Controller 属于传统的方式,流程如下:
由图可知,controller返回之后,需要由dispather找到对应的view,然后才返回客户端。而由于需要返回JSON格式,而非某个view,可采用以下方法:
在方法上加上 @ResponseBody
public @ResponseBody
定义方法返回值为ResponseEntity<T>
在spring4.0之后,引入了RestController注解,该注解相当于@Controller + @ResponseBody,简化了API 的开发方式。
参考:
RestController与Controller的对比
相关文章推荐
- SpringBoot的RestController vs @ResponseBody + @Controller
- Spring 4 MVC @RestController 注解实现REST Service(带源码)
- Spring中@Controller和@RestController之间的区别
- Spring 中 @Controller 和 @RestController
- Spring Boot项目@RestController使用重定向redirect
- Spring中@Controller和@RestController之间的区别
- @RestController实现spring自己风格的rest的webservice(不用jax-rs包)
- Spring中@Controller和@RestController的区别
- spring boot 使用@RestController 和 @Controller 构造常见http get ,post请求例子
- Spring中@Controller和@RestController之间的区别
- Spring中@Controller和@RestController之间的区别
- Spring REST Controller,在GET方式下,有多个参数时的处理
- Spring中@Controller和@RestController之间的区别
- Spring中@Controller和@RestController的区别?
- spring-boot restcontroller filter
- Spring中@Controller和@RestController之间的区别
- Spring Boot的被@SpringBootApplication注解的App.java必须放在所有的RestController的根路径的package下
- 《spring-boot学习》-12-@controller和@RestController的区别?
- Spring中@Controller和@RestController之间的区别
- Spring MVC @RestController接收POST请求,用Map接收