浅谈@RestController和@Controller的区别
在做Spring MVC开发时,如果对@RestController或者@Controller这两个注解理解不够清晰的话,就难免会出现用混的情况。而混用的结果往往是无法实现期望的跳转结果或者是直接将跳转页的名称输出到页面上了。其实从混用后得到的结果就很容易对两者的区别(或者说是使用场景的区别)得出一个简单的结论。那就是需要将xml或者json进行输出的时候,使用@RestController。自然,跳转的时候就应该使用@Controller。可问题就来了,如果在一个类中,你又想实现输出,又想实现跳转,该怎么做呢?
想要回答这个问题,需要弄明白这两者到底有什么区别。
首先从命名上来看,有一种包含的感觉。确实,官方说明文档中是有如下说明的。@RestController is a stereotype annotation that combines @ResponseBody and @Controller.也就是说@RestController = @ResponseBody + @Controller。而这两者分别是用来输出数据和实现跳转的。那么这时我们就知道了,如果一个类中又想实现数据又想实现跳转,在方法前加上@ResponseBody即可,像这样
@Controller
public class DemoController {
@ResponseBody
public String test() {
return "Hello World!";
}
}
浅谈@RestController和@Controller的区别的更多相关文章
- 浅谈 unix, linux, ios, android 区别和联系
浅谈 unix, linux, ios, android 区别和联系 网上的答案并不是很好,便从网上整理的相对专业的问答,本人很菜,大佬勿喷 UNIX 和 Linux UNIX 操作系统(尤尼斯) ...
- 浅谈cookie 和session 的区别
具体来说 cookie 是保存在“客户端”的,而session是保存在“服务端”的 cookie 是通过扩展http协议实现的 cookie 主要包括 :名字,值,过期时间,路径和域: 如果cooki ...
- RestController 和Controller的区别
restful风格,restcontroller与controller 初步接触springmvc的时候,被要求使用restful风格,彼时一头雾水,不懂何谓restful,参阅了很多资料,慢慢的接触 ...
- @restcontroller与@controller的区别
这段时间偷偷看了下spring boot.结果引用模板时没注意,把@restcontroller替换了@controlle,结果模板出不来.终究原因是spring的知识不到位. 下面说说这2的说明和区 ...
- 注解@RestController与@Controller的区别
开发RESTful API 时,一般都会在Controller上加上@Controller注解,但是有时候加上@RestController,当同事问为什么的时候,我也一脸懵逼,默默的看了资料,现在就 ...
- 浅谈Log4j和Log4j2的区别
相信很多程序猿朋友对log4j都很熟悉,log4j可以说是陪伴了绝大多数的朋友开启的编程.我不知道log4j之前是用什么,至少在我的生涯中,是log4j带我开启的日志时代. log4j是Apache的 ...
- @RestController 与 @Controller 注解区别
文章来源:https://www.cnblogs.com/hello-tl/p/9202658.html @RestController注解相当于@ResponseBody + @Controller ...
- RestController和Controller的区别
知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用. 1) 如果只是使用@RestController注解Controller,则Co ...
- SpringMVC中@RestController和@Controller的区别
在使用SpringMVC时,对于Controller中的注解@RestController和@Controller需要我们区分清楚 @RestController注解相当于@ResponseBody和 ...
随机推荐
- 2018年蓝桥杯b组国赛真题
1.标题:换零钞x星球的钞票的面额只有:100元,5元,2元,1元,共4种.小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱.小明有点强迫症,他坚持要求200元换出 ...
- sea.js的同步魔法
前些时间也是想写点关于CMD模块规范的文字,以便帮助自己理解.今天看到一篇知乎回答,算是给了我一点启发. 同步写法却不阻塞? 先上一个sea.js很经典的模块写法: // 定义一个模块 define( ...
- 纯css、js 的H5页面对接echarts
做项目时,会遇到一些零碎的技术点.记录下来以防忘记 需求:做可视化界面,但是需要兼容ie8,需要用纯css.js 的H5页面对接echarts,下面为效果图(带定时器循环显示tooltip). 实现方 ...
- 修改jdk注册表
如果是新增jdk的话就选中java Development kit 文件夹右击新建,然后把属性配置上就可以
- layui下拉框不显示的问题
1.先检查有没有引入layui.js 2.然后看有没有被<form class="layui-form"></form>包住, 3.查看是否有以下代码 &l ...
- MySQL之mysqldump的使用
一.mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具. 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的inser ...
- python 33 多进程(一)
目录 多进程 1. 进程创建的两种方式 multiprocessing 2. 进程pid (process id) 3. 验证进程之间的空间隔离 4. 进程对象join方法 5. 进程对象其他属性 6 ...
- 【2017cs231n】:课程笔记-第2讲:图像分类
[2017cs231n]:课程笔记-第2讲:图像分类 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.n ...
- Vulkan(0)搭建环境-清空窗口
Vulkan(0)搭建环境-清空窗口 认识Vulkan Vulkan是新一代3D图形API,它继承了OpenGL的优点,弥补了OpenGL的缺憾.有点像科创板之于主板,歼20之于歼10,微信之于QQ, ...
- javascript简单实现深浅拷贝
深浅拷贝知识在我们的日常开发中还算是用的比较多,但是之前的状态一直都是只曾听闻,未曾使用(其实用了只是自己没有意识到),所以今天来跟大家聊一聊js的深浅拷贝: 首先我们来了解一下javascript的 ...