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 区别相关推荐

  1. @Controller与@RestController区别

    https://www.cnblogs.com/shuaifing/p/8119664.html

  2. springmvc 中@Controller和@RestController的区别

    1.Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2.Controller, RestController的不同点 @Cont ...

  3. java controller注解原理_@Controller、@RestController注解区别详解

    @Controller.@RestController注解区别: @RestController 注解相当于 @Controller + @ResponseBody 合在一起的作用. 一.@Contr ...

  4. spring里面 @Controller和@RestController注解的区别

    问题:spring里面 @Controller和@RestController注解的区别 spring里面 @Controller和@RestController注解的区别 Web MVC和REST ...

  5. @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 ...

  6. Spring中@Controller和@RestController之间的区别

    1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2.  Controller, RestController的不同点 @C ...

  7. Controller和RestController的区别

    1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2.  Controller, RestController的不同点 @C ...

  8. SpringMVC Controller介绍(转)

    SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...

  9. 注解@controller的作用_@controller和@Restontroller区别

    @controller和@Restontroller区别(百度答案): 1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2 ...

  10. 【转】SpringMVC Controller 介绍

    转自:原文url 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...

最新文章

  1. Solidity语言
  2. JAVA学习(七)__Spring的@Autowired注入规则
  3. 推荐《求医不如求己》,实用
  4. OpenGL textures纹理的实例
  5. MySQL基础课堂笔记
  6. Java Web 应用概述
  7. 关于JS的面向对象总结
  8. 除了输入法,移动端AI还有哪些想象空间?
  9. 微机原理、计算机组成原理与计算机体系结构之间的关系
  10. android ip计算,子网掩码怎么算_ipv6子网掩码计算器_掩码计算器android
  11. python编程星期几_python如何获取星期几
  12. stm32f103r8t6的晶振频率_STM32F103R8T6 中文资料
  13. xp下格式化linux分区的硬盘,Windows XP 下格式化和清理磁盘(转)
  14. 类的加载器的介绍 和 类的加载过程
  15. 如何更好的与ChatGPT人机对话进行辅助pyhton代码开发
  16. 那些有趣又实用的开源人工智能项目 Top 10
  17. 全球及中国散热产业产销规模及投资盈利预测报告2021版
  18. ValueError: Can only save/restore ResourceVariables when executing eagerly, got type: <class ‘tenso
  19. Smartline IE V3 触摸屏项目下载的具体步骤以及注意事项
  20. 澳大利亚国立大学计算机学院,ANU澳大利亚国立大学机器学习与计算机视觉硕士Master of Machine Learning and Computer Vision...

热门文章

  1. vue中自定义组件(插件)
  2. spring mvc 简单的文件上传与下载
  3. 【转载】高速电路设计中的电源地
  4. java搜索引擎: lucene学习笔记 3
  5. 免费的分区软件MiniTool Partition Wizard Free
  6. Mysql数据库的mysql Schema 究竟有哪些东西 手工注入的基础要领
  7. 一、环境的安装Dev-C++
  8. Python 基礎 - 函數介紹
  9. HTTP 错误 500.23 - Internal Server Error
  10. 一次U3D DLL加密的记录(一)