1. Controller, RestController的共同点

都是用来表示Spring某个类的是否可以接收HTTP请求

2.  Controller, RestController的不同点

@Controller:  标识一个Spring类是Spring MVC controller处理器

@RestController:    @RestController是@Controller和@ResponseBody的结合体,两个标注合并起来的作用。

  @Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。在方法上加@ResponseBody注解,也可以返回实体对象

  @RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。

@RestController中的方法如果想跳转页面,则用ModelAndView进行封装,如下:

@RestController
public class UserController {@RequestMapping(value = "/index",method = RequestMethod.GET)public String toIndex(){ModelAndView mv = new ModelAndView("index");
       return mv;    
    }
}

示例如下:

@Controller
@ResponseBody
public class MyController { }  

@RestController
public class MyRestController { }  

@Controller注解源码:

package org.springframework.stereotype;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.stereotype.Component; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Controller { String value() default ""; }

@RestController注解源码:

package org.springframework.web.bind.annotation;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ResponseBody; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestController { String value() default ""; }

Controller和RestController的区别相关推荐

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

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

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

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

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

  4. @Controller和@RestController的区别?

    @RestController注解相当于@ResponseBody + @Controller合在一起的作用 1) 如果只是使用@RestController注解Controller,则Control ...

  5. @Controller和@RestController的区别

    为什么80%的码农都做不了架构师?>>>    官方文档: @RestController is a stereotype annotation that combines @Res ...

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

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

  7. 《spring-boot学习》-12-@controller和@RestController的区别?

    1.概述 @Controller和@RestController的区别? 官方文档: @RestController is a stereotype annotation that combines ...

  8. Spring MVC和REST中@RestController和@Controller注释之间的区别

    Spring MVC中的@RestController注释不过是@Controller和@ResponseBody注释的组合. 它已添加到Spring 4.0中,以简化在Spring框架中RESTfu ...

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

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

最新文章

  1. Image Processing图像处理(对比俩张图像的差异并且在图上标注出来)
  2. 2019年最受欢迎的JVM配置参数是怎样的?
  3. linux / 命令行 / LD_DEBUG 命令
  4. Stream流中的常用方法_count
  5. HDU2586(最近公共祖先的Tarjan算法)
  6. 远程桌面最新漏洞CVE-2019-0708 POC利用复现
  7. CSS相邻同胞选择器
  8. 在c语言中 使用变量的要求,关于C语言中变量的探讨
  9. Don’t Worry.Be Scruffy.
  10. Eclipse 汉化包下载安装
  11. sybase常用sql语句
  12. 项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三)...
  13. NoteBook / 期货及衍生品基础(5)
  14. java中执行ddl语句,DDL(数据定义语言)
  15. MTK 6737平台RILD的实现
  16. 【RedisTemplate】Set数据类型的常用操作
  17. 【CozeTalk】如何衡量你的人生-人生修炼手册-克莱顿·克里斯坦森
  18. chrome扩展设置代理
  19. MATLAB的符号运算基础
  20. 06 - 微信公众号的菜单配置

热门文章

  1. java ipv6校验_JS及java验证 IPV6,IPV4地址的 正则表达式 | 学步园
  2. c++11-Varadic Templates右值引用lamada
  3. 自定义Excel下拉菜单
  4. Zabbix安装(server和agent)及基本配置
  5. jQuery实现文字向上滚动
  6. C语言中简单的for循环和浮点型变量
  7. PHP高效的敏感词过滤方法
  8. 2013 QConf上海软件开发大会总结
  9. C#中使用JavaScriptSerializer类实现序列化与反序列化
  10. 【java学习笔记】浅析JavaWeb开发中Model1模式和Model2模式