@Controller和@RestController注解区别

news2024/11/25 2:49:50
  • 😜           :是江迪呀
  • ✒️本文关键词SpringBootSpring注解@Controller@RestController
  • ☀️每日   一言弗雷尔卓德是个好地方,可以造东西、打架、大吃一顿,啊~~ 甜蜜的家园呐 ——《英雄联盟》奥恩

在这里插入图片描述

一、前言

@Controller @RestController 是在Spring框架中用于构建 Web 应用程序的注解,它们在处理 HTTP 请求时有不同的作用。今天我们讲一下SpringBoot框架中,@Controller@RestController注解区别,以及使用场景。

二、正文

@RestController@ControllerSpring Framework 中用于处理 HTTP 请求的注解,它们之间的主要区别在于返回值以及用途。

2.1 @Controller

@Controller 注解是 Spring 框架中用于标记控制器(Controller)类的注解。控制器是 Web 应用程序的一部分,它用于接收来自客户端的 HTTP 请求,并根据请求的内容执行相应的业务逻辑。@Controller 类通常包含多个处理 HTTP 请求的方法,这些方法使用 @RequestMapping 等注解来映射请求的 URL。返回的数据通常是一个视图名称,Spring 会根据视图名称渲染 HTML 页面。

  • @Controller 通常用于创建传统的Spring MVC控制器,它处理 HTTP 请求并返回视图(HTML 页面)或模型数据。
  • 当一个方法被 @Controller 标记时,Spring MVC 将根据方法的返回值和视图**解析器(View Resolver)**来决定如何渲染响应,通常用于返回 HTML 页面或者渲染视图。
  • 适用于传统的 Web 应用程序,其中前端页面与后端**控制器(Controller)**相分离。

2.2 @RestController

  • @RestController@Controller 的一个特殊版本是一个复合注解,它结合了 @Controller@ResponseBody 注解。
    在这里插入图片描述

  • @RestController 用于创建 RESTful Web 服务,其处理 HTTP 请求并返回数据,而不是视图。返回的数据通常以 JSON 或 XML 格式。
    Spring Boot 应用程序中常用于构建 RESTful API,可以方便地将 Java 对象转换为 JSONXML 响应。

三、应用

3.1 使用@Controller 返回静态页面

@Controller
public class StaticController {
    /**
     * 返回static下面的静态资源
     * @return
     */
    @GetMapping("/static")
    public String returnStatic(){
        return "/index.html";
    }
}

注意: 请确保在resources/static目录下面有对应的静态资源。
resources/static 是默认的静态资源访问地址,如果你想要指定地址,需要在配置文件yaml或者properties文件)中添加如下的配置:

spring:
  resources:
    static-locations: classpath:[指定静态文件的路径]

在这里插入图片描述

3.2 使用@RestController返回数据

    @GetMapping("/userInfo")
    public List<User> queryUser(){
        List<User> user = new Arraylist<>();
        return user;
    }

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

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

相关文章

微信小程序源码【195套】【源码导入视频教程+源码导入文档教程+详细图文文档教程】

一、项目说明 盒马鲜生.zip 轻客洗衣.zip 云文档.zip 仿ofo共享单车.zip 仿美团外卖.zip 仿饿了么.zip 灵犀外卖.zip 小契约&#xff08;交友互动小程序&#xff09;.zip 信息科技公司展示小程序.zip 华云智慧园区.zip 房地产公司展示.zip 企业OA系统小程序.zip 优惠券卡卷小程…

设计模式篇(Java):装饰者模式

&#x1f468;‍&#x1f4bb;本文专栏&#xff1a;设计模式篇-装饰者模式 &#x1f468;‍&#x1f4bb;本文简述&#xff1a;装饰者模式的详解以及jdk中的应用 &#x1f468;‍&#x1f4bb;上一篇文章&#xff1a; 设计模式篇(Java)&#xff1a;桥接模式 &#x1f468;‍&am…

业务安全及案例实战

文章目录 业务安全1. 业务安全概述1.1 业务安全现状1.1.1 业务逻辑漏洞1.1.2 黑客攻击目标 2. 业务安全测试2.1 业务安全测试流程2.1.1 测试准备2.1.2 业务调研2.1.3 业务建模2.1.4 业务流程梳理2.1.5 业务风险点识别2.1.6 开展测试2.1.7 撰写报告 3. 业务安全经典场景3.1 业务…

conda的使用教程

conda的介绍 简单来说&#xff0c;conda软件就是来管理包的软件。以Python为例&#xff0c;在实际生活中&#xff0c;我们要处理多个不同的项目&#xff0c;因此&#xff0c;要安装不同的项目所需要的包&#xff0c;为了管理方便&#xff0c;conda就是用来打理不同项目的包&…

软考高级架构师下篇-13云原生架构设计理论与实践

目录 1. 考情分析2. 云原生架构内涵3. 云原生架构相关技术4. 前文回顾1. 考情分析 软考你报名了吗?下半年再来卷一个证书吧 本节主要学习云原生架构设计理论与实践。根据考试大纲,本小时知识点会涉及单选题型(约占2~4分)、案例题(25分)和论文题,本小时节内容偏重于方法…

自动化测试面试常见技术题目

1&#xff1a;一行代码实现1--100之和 print(sum(list(range(1,101)))) 2&#xff1a;如何在一个函数内部修改全局变量 global  修改全局变量 局部作用域只能调用全局作用域的变量&#xff0c;但是不熊修改全局作用域的变量&#xff0c;如果想要修改全局作用域的变量需要gl…

2023年中国信通院铸基计划“文本图像篡改检测系统技术规范”研讨会成功召开

2023年中国信通院铸基计划“文本图像篡改检测系统技术规范”&#xff08;简称“规范”&#xff09;研讨会于2023年8月16日在中国信息通信研究院成功召开&#xff0c;来自中国信息通信研究院、上海合合信息科技股份有限公司&#xff08;简称“合合信息”&#xff09;、华南理工大…

【文末送书】全栈开发流程——后端连接数据源(二)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

【C#项目实战】控制台游戏 勇士斗恶龙(2)——游戏场景的设置以及玩家战斗逻辑

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;最近开始正式的步入学习游戏开发的正轨&#xff0c;想要通过写博客的方式来分享自己学到的知识和经验&#xff0c;这就是开设本专栏的目的。希望…

【web开发】2、css基础

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、CSS是什么&#xff1f;二、使用步骤2.1.css的存放位置2.2.选择器2.3.常用CSS样式介绍与示例 一、CSS是什么&#xff1f; 层叠样式表(英文全称&#xff1a;Casc…

vue2+element-ui批量导入方法并判断上传的文件是否为xls或xlsx

业务需求: 代码结构: <el-dialogtitle"批量导入":close-on-click-modal"true"close"close()":visible"true"width"35%":center"true"><div class"el-dialog-div"><!-- 头部区域布局 -…

万物互联:软件与硬件的协同之道

在当今数字化时代&#xff0c;我们身边的一切似乎都与计算机和互联网有关。从智能手机到智能家居设备&#xff0c;从自动驾驶汽车到工业生产线&#xff0c;无论我们走到哪里&#xff0c;都能看到软件和硬件的协同作用。本文将探讨这种协同作用&#xff0c;解释软件和硬件如何相…

R语言机器学习之caret包详解(二:模型的训练以及调参)

R语言机器学习之caret包详解&#xff08;二&#xff1a;模型的训练以及调参&#xff09; 前言caret包模型调优的策略、示例、以及一些小tips 前言 在之前的博客中我们详细介绍过了数据的拆分策略、各种数据处理的方法、各种交叉验证的方法&#xff0c;并且以示例介绍了R函数cre…

传统文化,运用好了,能生财!

千年以来&#xff0c;五行是中华民族文化的瑰宝&#xff0c;历代先贤智慧的结晶。五行学说是中国传统文化重要组成部分&#xff0c;是中国古代哲学思想的重要内容。古人认为&#xff0c;万物由五种相关的基本物质木、火、土、 金、水构成&#xff0c;这就是五行。 五行思想强调…

NFTScan 浏览器再升级:优质数据服务新体验来袭

当前&#xff0c;高质量的 NFT 数据服务已成为区块链用户和开发者的必需。为满足用户数据需求&#xff0c;NFTScan 主站近日进行全面升级&#xff0c;优化了数据服务板块的页面结构&#xff0c;实现更清晰简洁的布局和交互。 NFTScan 的改版充分考虑用户和开发者的数据体验&am…

【python】TCP socket服务器 Demo

目录 一、单线程服务器 二、多线程服务器 三、多线程服务器&#xff08;发送和接收分离&#xff09; 一、单线程服务器 说明&#xff1a;只能连接一个客户端 import socket,binascii# 创建一个 TCP 套接字 server_socket socket.socket(socket.AF_INET, socket.SOCK_STRE…

【C++基础】4、变量

文章目录 【 1、变量的定义 】【 2、变量的声明 】示例 【 3、左值和右值 】 变量&#xff1a;相当于是程序可操作的数据存储区的名称。在 C 中&#xff0c;有多种变量类型可用于存储不同种类的数据。C 中每个变量都有指定的类型&#xff0c;类型决定了变量存储的大小和布局&am…

文末送书!谈谈原型模式在JAVA实战开发中的应用(附源码+面试题)

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;3年JAVA全栈开发经验&#xff0c;专注JAVA技术、系统定制、远程指导&#xff0c;致力于企业数字化转型&#xff0c;CSDN博客专家&#xff0c;蓝桥云课认证讲师。 本文讲解了 Java 设计模式中的原型模式&#xff0c;并给…

python3

#安装python3 brew install python3 看到下图表示安装python3成功: #将python3 加入环境变量 export PATH$PATH:/opt/homebrew/bin/#查看python 版本 python3 --version#查看pip 版本 pip3 --version#更新python源 pip3 config set global.index-url https://pypi.tuna.tsing…

免费电商api接口,分享给你「建议收藏」

API&#xff08;应用程序编程接口&#xff09; ​ API&#xff08;Application Programming Interface&#xff0c;应用程序接口&#xff09;是一些预先定义的函数&#xff0c;或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组…