【SpringMVC】@Controller 和 @RestController 区别
2019独角兽企业重金招聘Python工程师标准>>>
接下来我们通过@Controller 与 @RestController 的源码来瞧瞧它们之间的区别,我们先来看看@Controller的源码。
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Controller {/*** The value may indicate a suggestion for a logical component name,* to be turned into a Spring bean in case of an autodetected component.* @return the suggested component name, if any*/String value() default "";}
通过@Controller源码看出,它继承了@Component,这解释了@Controller定义类可以直接被Spring加载和实例化。
接下来我们来看看@RestController的定义。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {/*** The value may indicate a suggestion for a logical component name,* to be turned into a Spring bean in case of an autodetected component.* @return the suggested component name, if any* @since 4.0.1*/String value() default "";}
通过上面的代码可以看出@RestController是一个复合annotation,主要是包含了@Controller和@ResponseBody。
也就是说@Controller 和 @RestController的区别就是 @ResponseBody,那么我们来看看@ResponseBody又是用来干嘛的?
Annotation that indicates a method return value should be bound to the web response body. Supported for annotated handler methods in Servlet environments.
也就是说@ResponseBody 会将方法返回值塞到请求的 response body里,那在实际情况下会带来什么问题呢?
由于@ResponseBody会把方法返回值直接塞到请求的 response body里,导致如果某个方法需要做页面跳转(比如,跳转到 html. jsp, ftl),是没办法成功的。
转载于:https://my.oschina.net/simonton/blog/1630055
【SpringMVC】@Controller 和 @RestController 区别相关推荐
- @Controller与@RestController区别
https://www.cnblogs.com/shuaifing/p/8119664.html
- springmvc 中@Controller和@RestController的区别
1.Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2.Controller, RestController的不同点 @Cont ...
- java controller注解原理_@Controller、@RestController注解区别详解
@Controller.@RestController注解区别: @RestController 注解相当于 @Controller + @ResponseBody 合在一起的作用. 一.@Contr ...
- spring里面 @Controller和@RestController注解的区别
问题:spring里面 @Controller和@RestController注解的区别 spring里面 @Controller和@RestController注解的区别 Web MVC和REST ...
- @Controller与@RestController的区别以及ircular view path [ad]: would dispatch back to the current handler异常
QUESTION:@Controller与@RestController的区别以及ircular view path [ad]: would dispatch back to the current ...
- Spring中@Controller和@RestController之间的区别
1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2. Controller, RestController的不同点 @C ...
- Controller和RestController的区别
1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2. Controller, RestController的不同点 @C ...
- SpringMVC Controller介绍(转)
SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...
- 注解@controller的作用_@controller和@Restontroller区别
@controller和@Restontroller区别(百度答案): 1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2 ...
- 【转】SpringMVC Controller 介绍
转自:原文url 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...
最新文章
- Solidity语言
- JAVA学习(七)__Spring的@Autowired注入规则
- 推荐《求医不如求己》,实用
- OpenGL textures纹理的实例
- MySQL基础课堂笔记
- Java Web 应用概述
- 关于JS的面向对象总结
- 除了输入法,移动端AI还有哪些想象空间?
- 微机原理、计算机组成原理与计算机体系结构之间的关系
- android ip计算,子网掩码怎么算_ipv6子网掩码计算器_掩码计算器android
- python编程星期几_python如何获取星期几
- stm32f103r8t6的晶振频率_STM32F103R8T6 中文资料
- xp下格式化linux分区的硬盘,Windows XP 下格式化和清理磁盘(转)
- 类的加载器的介绍 和 类的加载过程
- 如何更好的与ChatGPT人机对话进行辅助pyhton代码开发
- 那些有趣又实用的开源人工智能项目 Top 10
- 全球及中国散热产业产销规模及投资盈利预测报告2021版
- ValueError: Can only save/restore ResourceVariables when executing eagerly, got type: <class ‘tenso
- Smartline IE V3 触摸屏项目下载的具体步骤以及注意事项
- 澳大利亚国立大学计算机学院,ANU澳大利亚国立大学机器学习与计算机视觉硕士Master of Machine Learning and Computer Vision...