Controller和RestController的区别
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的区别相关推荐
- @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 ...
- java controller注解原理_@Controller、@RestController注解区别详解
@Controller.@RestController注解区别: @RestController 注解相当于 @Controller + @ResponseBody 合在一起的作用. 一.@Contr ...
- springmvc 中@Controller和@RestController的区别
1.Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2.Controller, RestController的不同点 @Cont ...
- @Controller和@RestController的区别?
@RestController注解相当于@ResponseBody + @Controller合在一起的作用 1) 如果只是使用@RestController注解Controller,则Control ...
- @Controller和@RestController的区别
为什么80%的码农都做不了架构师?>>> 官方文档: @RestController is a stereotype annotation that combines @Res ...
- spring里面 @Controller和@RestController注解的区别
问题:spring里面 @Controller和@RestController注解的区别 spring里面 @Controller和@RestController注解的区别 Web MVC和REST ...
- 《spring-boot学习》-12-@controller和@RestController的区别?
1.概述 @Controller和@RestController的区别? 官方文档: @RestController is a stereotype annotation that combines ...
- Spring MVC和REST中@RestController和@Controller注释之间的区别
Spring MVC中的@RestController注释不过是@Controller和@ResponseBody注释的组合. 它已添加到Spring 4.0中,以简化在Spring框架中RESTfu ...
- Spring中@Controller和@RestController之间的区别
1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2. Controller, RestController的不同点 @C ...
最新文章
- Image Processing图像处理(对比俩张图像的差异并且在图上标注出来)
- 2019年最受欢迎的JVM配置参数是怎样的?
- linux / 命令行 / LD_DEBUG 命令
- Stream流中的常用方法_count
- HDU2586(最近公共祖先的Tarjan算法)
- 远程桌面最新漏洞CVE-2019-0708 POC利用复现
- CSS相邻同胞选择器
- 在c语言中 使用变量的要求,关于C语言中变量的探讨
- Don’t Worry.Be Scruffy.
- Eclipse 汉化包下载安装
- sybase常用sql语句
- 项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三)...
- NoteBook / 期货及衍生品基础(5)
- java中执行ddl语句,DDL(数据定义语言)
- MTK 6737平台RILD的实现
- 【RedisTemplate】Set数据类型的常用操作
- 【CozeTalk】如何衡量你的人生-人生修炼手册-克莱顿·克里斯坦森
- chrome扩展设置代理
- MATLAB的符号运算基础
- 06 - 微信公众号的菜单配置