Spring中@Controller 和 @RestController 的作用与区别

2023-11-16

一、@Controller 和 @RestController都是Spring XXX类是否可以接收HTTP请求。
二、@Controller 和 @RestController的不同点

  1. 当用@Controller时在方法上必须添加注解@ResponseBody,如果不添加@ResponseBody,就会报错误,因为当使用@Controller 注解时,spring默认方法返回的是view对象(页面),@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。加上@ResponseBody后方法返回就是具体对象了。

例如:如果在类上加@Controller,那么在方法上必须添加@ResponseBody
类:

@Controller
@RequestMapping("/login")
public class LoginControl {

方法:

    @ResponseBody
    @PostMapping("/pwd2")
    public Map loginByPwd1(@RequestBody PostUserBean postUserBean){
        Map map = new HashMap() ;
        if (postUserBean == null || postUserBean.getName() == null ||!postUserBean.getName().equals("邱工")){
            map.put("msg","请传入{“Name:邱工”}");
        } else {
            map.put("classInfo",classInfoBean.userInfo());
        }
        return map;
    }
  1. @RestController的作用就相当于@Controller+@ResponseBody的结合体,@RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面

@RestController
@RequestMapping("/test")
public class TestRestController {

    @Autowired
    ClassInfoBean classInfoBean;

    @PostMapping("/userinfo")
    public Map userInfo(@RequestBody PostUserBean postUserBean){
        Map map = new HashMap() ;
        if (postUserBean == null || postUserBean.getName() == null ||!postUserBean.getName().equals("邱工")){
            map.put("msg","请传入{“Name:邱工”}");
        } else {
            map.put("classInfo",classInfoBean.userInfo());
        }
        return map ;
    }
}

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring中@Controller 和 @RestController 的作用与区别 的相关文章

  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 知识蒸馏基础及Bert蒸馏模型

    为了提高模型准确率 我们习惯用复杂的模型 网络层次深 参数量大 甚至会选用多个模型集成的模型 这就导致我们需要大量的计算资源以及庞大的数据集去支撑这个 大 模型 但是 在部署服务时 就会发现这种 大 模型推理速度慢 耗费内存 显存高 这时候
  • 如何在pycharm中使用配置好的virtualenv环境

    使用pycharm自动建立虚拟环境 file gt setting gt interpreter 选择添加环境 添加虚拟环境 这里选择不勾选第一个选项框 之后 将 requirements txt 文件放到虚拟目录 venv 下 pycha
  • MODIS数据的简介和下载(一)——MODIS数据简介

    借最近上课实习上机内容 来介绍MODIS数据相关方面内容 本部分主要包括了MODIS数据的简介和下载的问题 本篇是第一部分 MODIS的简介 主要分为三个部分 1 MODIS传感器简介及参数 2 MODIS产品及命名规则 3 MODIS的典
  • 【马士兵】Python基础--19

    Python基础 19 文章目录 Python基础 19 with语句 os模块的常用函数 os path模块的常用方法 with语句 with open logo png rb as src file with open copy2log
  • JS组件Bootstrap实现弹出框和提示框效果代码

    前言 对于Web开发人员 弹出框和提示框的使用肯定不会陌生 比如常见的表格新增和编辑功能 一般常见的主要有两种处理方式 行内编辑和弹出框编辑 在增加用户体验方面 弹出框和提示框起着重要的作用 如果你的系统有一个友好的弹出提示框 自然能给用户
  • FreeRTOS学习---“定时器”篇

    总目录 FreeRTOS学习 任务 篇 FreeRTOS学习 消息队列 篇 FreeRTOS学习 信号量 篇 FreeRTOS学习 事件组 篇 FreeRTOS学习 定时器 篇 FreeRTOS提供了一种软件定时器 用来快速实现一些周期性的
  • hi3861 通过MQTT协议连接OneNet平台(配置好的环境+详细步骤)

    目录 前言 下载配置完毕的镜像 下载链接 修改Onenet信息 添加编译 编译 烧录 HiBurn下载 查看状态 作者留言 更多详情参考gitee网站 前言 hi3861单片机通过MQTT协议连接OneNet平台 下载配置完毕的镜像 下载链
  • 消除WORD中的域连接

    消除WORD中的域连接 Control A Control Shift F9
  • Docker服务启动报错:Job for docker.service failed because the control process exited with error

    报错信息 Job for docker service failed because the control process exited with error code See systemctl status docker servic
  • Idea的 Cannot resolve method ‘getAttribute(java.lang.String)‘问题解决

    问题 写javaweb jsp时使用application getAttribute出现报错 Cannot resolve method getAttribute java lang String 解决方法 第一步 File gt Proj
  • ansible定时任务模块和用户组模块使用

    接上篇 还是一些基础模块的使用 这里主要介绍的是系统模块的使用 下面例子都进行过相关的实践 从而可以直接进行使用相关的命令 3 用户模块的使用 用户模块主要用来管理用户账号和用户的属性 对远程主机用户进行批量管理 用户模块依赖的指令为use
  • 数据回归算法

    文章目录 效果一览 文章概述 研究内容 程序设计 参考资料 效果一览 文章概述 数据回归算法 Matlab实现高斯过程回归预测模型 研究内容 高斯过程回归 Gaussian Process Regression 是一种基于概率的非参数回归方
  • [转]DLL中使用全局变量

    默认只是 其宿主进程的全局变量 也是说 每个宿主程序都有这个副本 所以这个全局变量不能被所有进程共用 windows好像是用 copy on write机制进行保护的 如果共用 需要设置共享段 并把它放到共享段中 这样 一个宿主进程改了它的
  • 第十三届蓝桥杯省赛 最优清零方案题解

    题目描述 给定一个长度为N的数列A1 A2 AN 现在小蓝想通过若干次操作将这个数列中每个数字清零 每次操作小蓝可以选择以下两种之一 选择一个大于0的整数 将它减去1 选择连续K个大于0的整数 将它们各减去1 小蓝最少经过几次操作可以将整个
  • 电流反馈型运放电路设计指南

    刚开始使用电流反馈型运放时 总会从资料上看到这样的信息 电流反馈型运放直流特性不好 适合放大高频的交流信号 带宽不因频率增加而减小 也就是没有增益带宽积的概念 再深一点 CFB运放的反馈电阻需为恒定的值 为了弄清楚这些问题 我看过很多英文应
  • 为qt安装第三方插件qwt,可以在creator设计界面中拖拽

    前言 个人笔记 欢迎探讨 注意事项 1 如下步骤涉及的编译器 必须和creator使用的版本一样 而creator使用的编译器版本 可以通过qt的creator界面帮助菜单中查看关于creator得到 我使用的是creator4 4 1 编
  • Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知 binlog日志对于mysql数据库来说是十分重要的 在数据丢失的紧急情况下 我们往往会想到用binlog日志功能进行数据恢复 定时全备份 binlog日志恢复增量数据部分 化险为夷 一 简单了解binlogMySQL的二进制日志
  • Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法

    最近在编写Python脚本过程中遇到一个问题比较奇怪 Python脚本完全正常没问题 但执行总报错 AttributeError module object has no attribute xxx 这其实是 pyc文件存在问题 问题定位
  • 人机交互-7-交互需求定义

    1 背景 无论取代或更新已有系统 还是开发新产品 需求的建立都是非常重要的 需求获取是项目设计的第一个阶段 确定和记录现有的工作流程 收集 将信息组织起来 整体上涵盖工作的各个方面 描述 产品是不同的 对需求提出了特殊的要求 用户是不同的
  • Spring中@Controller 和 @RestController 的作用与区别

    一 Controller 和 RestController都是Spring XXX类是否可以接收HTTP请求 二 Controller 和 RestController的不同点 当用 Controller时在方法上必须添加注解 Respon