@Controller 和 @RestController 区别

  1. 功能范畴:

    • @Controller:用于定义一个控制器类,主要用于处理用户请求并返回视图(通常是HTML页面)。常常与 Spring MVC 的视图解析器一起使用。
    • @RestController:是一个特殊类型的控制器,用于返回数据而不是视图。它用于构建 RESTful Web 服务,返回 JSON、XML 或其他格式的数据。
  2. 返回值处理:

    • @Controller 的方法默认返回的是视图名。如果想返回 JSON 数据,需要额外使用 @ResponseBody 注解。
    • @RestController 是一个组合注解,实际上是 @Controller 和 @ResponseBody 的结合。使用 @RestController 标注的类中的每个方法返回的数据会被自动序列化为 JSON(或其他格式),而不是视图名称。
使用 @Controller 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;@Controller
public class MyController {@GetMapping("/hello")public String hello() {return "hello"; // 返回视图名}
}
使用 @RestController 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MyRestController {@GetMapping("/hello")public String hello() {return "Hello, World!"; // 直接返回数据}
}

为什么引入 @RestController

  1. 简化代码: @RestController 减少了在使用 @Controller 时必须显式添加 @ResponseBody 注解的需求,使代码更简洁清晰。

  2. 清晰的意图:使用 @RestController 明确表示该类的目的是为了提供 RESTful API,使得代码的可读性更强。

  3. 语义的明确:在 RESTful 开发中,使用 @RestController 提供一种语义上的约定,帮助其他开发者快速理解这个控制器的角色和所期望的返回格式。

何时使用

  • 当你需要返回视图(HTML 页面)时,使用 @Controller
  • 当你构建 RESTful Web 服务,并且需要返回 JSON 或 XML 数据时,应使用 @RestController

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ几大应用问题

目录 1.幂等性保障 2.顺序性保障 3.消息积压 1.幂等性保障 (1)介绍幂等性 幂等性,最早期是数学和计算机科学中某些运算的性质,它们可以被多次应用,而不会改变初始应用的结果 比如说,重复多次调用同一…

创新业态下金融头部机构在 FICC 平台建设上的思考与实践

近年来,FICC 投资交易呈现活跃多元态势,创新转型稳步推进。FICC 平台电子化方兴未艾,是机构提升服务效率和质量的一大着力点。因此,在 FICC 平台建设上,许多机构都进行了深入研究,积累了丰富的实践经验。 …

(五)Web前端开发进阶2——AJAX

目录 1.Ajax概述 2.Axios库 3.认识URL 4.Axios常用请求方法 5.HTTP协议——请求报文/响应报文 6.HMLHttpRequest对象 7.前后端分离开发(接口文档) 8.Element组件库 1.Ajax概述 AJAX 是异步的 JavaScript和XML(Asynchronous JavaScript And XML)。…

linux文件的权限

前言 在linux操作系统中,账户分为两类,一类是普通用户,一类是超级用户,普通用户在许多方面受权限约束,而超级用户几乎不受约束。 root账户和普通账户的切换 有三种方式能够切换账号 su su 直接使用,会弹…

1-无监督学习求解旅行商问题(NeurIPS 2023)(未完)

文章目录 Abstract1 Introduction2 Our ModelAbstract 我们提出了 UTSP,一种用于解决旅行商问题 (TSP) 的无监督学习 (UL) 框架。 我们使用替代损失来训练图神经网络(GNN)。 GNN 输出一个热图,表示每条边成为最佳路径一部分的概率。 然后,我们应用本地搜索来根据热图生成…

在vue3项目中,如何正确定义不同类型ref变量的类型

Vue 3 引入了 Composition API,它使用 ref 和 reactive 等函数来创建响应式的变量。在 TypeScript 中,我们需要确保类型正确地反映这些变量的实际类型。 定义ref变量 下面是几个示例,展示了如何在 Vue 3 项目中使用 TypeScript 来定义 ref …

【CSS3】css开篇基础(5)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

net framework 3.5组件更新失败错误代码0x80072f8f怎样解决

浏览器地址栏输入www.dnz9.com远程解决netframework问题 当遇到.NET Framework 3.5 组件更新失败,错误代码为 0x80072f8f 时,可以尝试以下几种解决方法: 一、检查网络连接和时间设置 网络连接 错误代码 0x80072f8f 通常与网络相关问题有关。首…

STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器

1、简要说明与电路图 LED灯与蜂鸣器都是GPIO的输出操作,给高低电平实现。GPIO操作也是后续操作的基础,没有什么难度,记不住寄存器没关系,只要把流程理清楚就可以了。 端口配置成推挽输出模式,高低电平均有驱动能力。 …

计算机网络网络层笔记

互联网提供的两种服务 1.虚电路服务 2.数据报服务 需要记住的是现在只用第二种也就是数据报服务 网际协议IP 物理层的中断系统:转发器(hub) 链路层的中断系统:交换机 网络层的中断系统:路由器 网络层以上:网关 如上图所示,网关是用来访问其他的网段的一个接口,网关的地…

commitlint+lint-staged+husky

步骤 1. 安装依赖 pnpm i -D husky lint-staged commitlint commitlint/cli commitlint/config-conventional 2. 初始化命令 npx husky init 3. 配置 // commit-msg,现npx husky add 添加指令已被废弃,手动添加 npx --no-install commitlint --edi…

大屏可视化:舞动数据与美观的“设计秘籍”

大屏可视化鉴赏:踏入软件系统产品设计之旅,让我们一同鉴赏那些闪耀在智慧农业、智慧园区、智慧社区及智慧港口等领域的大屏可视化杰作。每一帧画面,都是科技与创新的完美融合,数据跃然屏上,智慧触手可及。 >> 数…

持续基础怎么搞?Jenkins+Docker+Git实战

在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要。目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部署、交付(…

EDA --软件开发之路

之前一直在一家做数据处理的公司,从事c开发,公司业务稳定,项目有忙有闲,时而看下c,数据库,linux相关书籍,后面跳槽到了家eda公司,开始了一段eda开发之路。 eda 是 electric design …

「Mac畅玩鸿蒙与硬件10」鸿蒙开发环境配置篇10 - 项目实战:计数器应用

本篇将通过一个简单的计数器应用,带你体验鸿蒙开发环境的实际操作流程。本项目主要练习组件的使用、事件响应和状态管理,帮助开发者熟悉基本的应用构建流程。 关键词 计数器应用组件操作事件响应状态管理HarmonyOS 应用开发一、创建计数器项目 1.1 在 DevEco Studio 中新建项…

串口通信以及USART和UART以及IIC和SPI-学习笔记

串行通讯与并行通讯 串行通讯是指设备之间通过少量数据信号线(一般8根以下)、地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式,串行通讯同一时刻只能传输一个数据位的数据,但通讯距离比并行通讯远、抗干…

window快捷键:window + v 打开剪切板历史记录 / 非常实用

一、剪切板历史记录功能介绍 1.1、window v 打开剪切板历史记录 / 文字、图片都可记录 1.2、window v 最近使用 1.3、window v 表情符号 1.4、window v GIF 1.5、window v 颜文字 1.6、window v 符号 二、欢迎交流指正

寻找专业在线微信投票和点赞服务团队攻略

在当今的社交网络时代,微信投票和点赞活动日益频繁,无论是企业评选、才艺比赛还是个人荣誉的角逐,都可能需要一定的投票和点赞支持。然而,要找到领先、高效、专业的在线微信投票和点赞服务团队并非易事。以下是一些关键步骤和注意…

115页PPT华为管理变革:制度创新与文化塑造的核心实践

集成供应链(ISC)体系 集成供应链(ISC)体系是英文Integrated Supply Chain的缩写,是一种先进的管理思想,它指的是由相互间提供原材料、零部件、产品和服务的供应商、合作商、制造商、分销商、零售商、顾客等…

HTML5和CSS3常见面试题

😊HTML5和CSS3常见面试题 1.HTML5有哪些新特性?2.你是如何理解语义化标签的?3.CSS3有哪些新特性?4.rem和em的区别是什么?5.如何实现自适应布局?6.清除浮动的方法有哪些?7.伪元素清除的原理是什么…