基于注解的 SpringMVC

news/2024/4/25 19:54:58/文章来源:https://blog.csdn.net/PY_XAT_SFZL/article/details/131969348

SpringMVC

  • SpringMVC
    • 使用SpringMVC的两个配置@EnableWebMVC 和 ACWAC
    • SpringMVC执行流程
    • 接收请求参数
      • Postman 发包工具()
      • get 请求---简单类型数据(基本数据类型和String)
      • get 请求---对象类型数据
      • get 请求---数组类型
      • get 请求 --- 集合类型 @RequestParam
      • get 请求 --- 日期类型 @DateTimeFormat
      • post 请求 --- 请求体类型 @RequestBody
      • 请求---路径参数 @Pathvariable
      • @RequestParam的三个应用场景
      • 总结
  • 全局异常处理器
    • 两个注解 @RestControllerAdvice 和 @ ExceptionHandler
  • Restful 风格
    • Restful四种方式(注解)
  • 注解总结(十四)

SpringMVC

介绍:
SpringMVC将Servlet一些通用功能进行了抽取和封装,使用它之后,代码主要有两部分组成:
前端控制器:由SpringMVC提供,主要负责接收参数和返回数据(在进入控制层之前的位置 会先经过前端控制器 再 到 控制层 返回数据时在控制层之后)
处理器:由程序员编写,主要负责参数的处理和业务层调用,可以理解为自己所写的业务逻辑代码
还有视图解析器等,视图解析器可以搭配JSP使用,但是现在不用JSP,也不用表单提交,就不对视图解析器做过多解释
在这里插入图片描述

使用SpringMVC的两个配置@EnableWebMVC 和 ACWAC

需要在这个config包下添加SpringMVC的初始化类和在配置类(有@Component修饰的类)中添加 @EnableWebMVC注解 加载SpringMVC,在初始化类中继承ADSI父类重写3个方法,可以创建SpringMVC容器 配置要处理请求的路径 创建Spring容器
在这里插入图片描述
在这里插入图片描述

SpringMVC执行流程

@RequestMapping注解的作用是接收前端请求,有两个重要的属性 value 和 method
@RsponseBody注解的作用是声明返回前端的数据为Json类型
@Controller 和 @RsponseBody 可以进行合并 @RestController 用在类上表明类中的所有方法均返回前端json格式的数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接收请求参数

Postman 发包工具()

这里介绍一个小工具Postman 可以发送 get post put delete 请求 ,模拟前端请求,
可以携带参数或请求体,这样救不用写表单来进行测试了

get 请求—简单类型数据(基本数据类型和String)

在这里插入图片描述

get 请求—对象类型数据

在这里插入图片描述

get 请求—数组类型

在这里插入图片描述

get 请求 — 集合类型 @RequestParam

在这里插入图片描述

get 请求 — 日期类型 @DateTimeFormat

在这里插入图片描述

post 请求 — 请求体类型 @RequestBody

在这里插入图片描述

请求—路径参数 @Pathvariable

在这里插入图片描述

@RequestParam的三个应用场景

在这里插入图片描述
应该也可以给集合起别名(参考Mybatis中 的@Param注解猜想)

总结

在这里插入图片描述
@RequestMapping 如果不指定method属性 默认接收所有请求类型

全局异常处理器

就是在controller层之前不进行异常的处理,所有的异常都会向上层抛出,直到抛到控制层为止,全局异常处理器会对控制层中的异常进行处理,

两个注解 @RestControllerAdvice 和 @ ExceptionHandler

@RestControllerAdvice 标注在上,声明当前类是一个用于专门处理异常的类
@ExceptionHandler 标注在方法上,声明当前方法可以处理哪些异常
在这里插入图片描述

Restful 风格

Restful风格是一种通过请求方式和请求路径确定方法的方式,避免了一些请求方法的暴露,提高了安全性和简洁性

REST是一种软件架构风格,其强调HTTP应当以资源为中心[在请求地址中尽量的不要出现动词]。
REST使用不同的请求方式表示不同的操作操作: GET(获取)、POST(新建)、PUT(更新)、DELETE(删除)
在这里插入图片描述

Restful四种方式(注解)

@GetMapping 相当于@RequestMapping( method = RequestMethod.GET) 常用与查询请求 可以与路径参数方式搭配使用
@PostMapping
@PutMapping
@DeleteMapping

ps:get 方式 和 delete 方式 不能携带请求体 要想获取必须通过将数据作为参数的形式传到后端
路径参数也可以传递数组形式的参数 接收不定长的数组的时候前端可以通过集合接收

注解总结(十四)

@EnableWebMVC
@RequestMapping
@Resonpse
@RestController
@RequestParam
@DateTimeFormat
@RequestBody
@Pathvariable
@RestControllerAdvice
@ ExceptionHandler
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping

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

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

相关文章

Codeforces Round 886 (Div. 4)F题解

文章目录 [We Were Both Children](https://codeforces.com/contest/1850/problem/F)问题建模问题分析1.分析到达的点与跳跃距离的关系2.方法1倍数法累计每个点所能达到的青蛙数代码 方法2试除法累计每个点能到达的青蛙数代码 We Were Both Children 问题建模 给定n个青蛙每次…

自动驾驶感知系统--惯性导航定位系统

惯性导航定位 惯性是所有质量体本身的基本属性,所以建立在牛顿定律基础上的惯性导航系统(Inertial Navigation System,INS)(简称惯导系统)不与外界发生任何光电联系,仅靠系统本身就能对车辆进行连续的三维定位和三维定向。卫星导…

前端框架学习-Vue(二)

最近在学习Vue框架,Vue中的内容很多。相当于把之前后端的MVC,V层转移到前端来编写和部署。下面是学习Vue时的大纲。 Vue生命周期是Vue应用的生命周期Vue脚手架,即vue-cli,使用node.js 来创建和启动vue项目Vue组件知识,…

Linux - PostgreSQL 适用于9.x 以上的 tar.gz 源码安装与理解 - 报错集锦

这里写目录标题 序言主要内容bash 配置文件个人理解关于初始化 PostgreSQL 数据库的理解 启动方法检查服务器是否在PostgreSQL中运行关闭 postgresql 数据库方法参考链接 序言 PostgreSQL 9.x 以下版本笔者没用过,具体操作看参考链接,笔者就不记录重复操…

深入解析Linux进程内存:VSS、RSS、PSS、USS及查看方式

VSS 虚拟耗用内存大小,是进程可以访问的所有虚拟内存的总量,包括进程独自占用的物理内存、和其他进程共享的内存、分配但未使用的内存。 RSS 驻留内存大小,是进程当前实际占用的物理内存大小,包括进程独自占用的物理内存、和其…

android app控制ros机器人三(android登录界面)

接下来是二次开发的具体环节了,由于存在用户需求,用到ros-mobile不多,更偏向于android开发。 用ppt画了简单的展示界面,与用后交流界面的功能布局。先开发一代简易版本的app,后续可以丰富完善。ctrlcv上线。 登录界面…

RK3566 android代码编译

一、搭建环境 所用的ubuntu系统之前已编译过linux代码,所以只需安装编译android所需的环境。 安装jdk-8 如果之前系统没有安装则执行以下命令安装: sudo apt-get install openjdk-8-jdk 查看当前系统是否有jdk-8 $ sudo update-alternatives --conf…

吃透《西瓜书》第三章 线性模型:对数几率回归

🍉 吃瓜系列 教材:《机器学习》 周志华著 🕒时间:2023/7/26 目录 一、对数几率回归 1.1 定义和基本思想 1.2 对数记录回归建模 1.3 广义线性模型 1.3.1 指数族分布 1.3.2 广义线性模型的三条假设 1.4 对数几率回归的广义线…

HTML一些基础知识

1、Web标准:主要包含结构、表现、行为。结构用于对网页元素进行整理和分类,主要指HTML。表现用于设置网页元素的板式、颜色、大小等外观样式,主要指的是CSS。行为主要指的是网页模型的定义以及交互的编写,主要是js文件。 Html相当…

kali Linux 工具 BurpSuite-暴力破解

关于渗透的实验,我们大多数能在kali的工具集找到,其中关于抓包工具BurpSuite的使用,我做一个比较简单的实验————————暴力破解—————————— 暴力破解,顾名思义,就是我们把密码一个个尝试,只…

【MySQL】索引特性

​🌠 作者:阿亮joy. 🎆专栏:《零基础入门MySQL》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录 👉没…

ReID网络:MGN网络(1) - 概述

Start MGN 1. 序言 现代基于感知的信息中,视觉信息占了80~85%。基于视觉信息的处理和分析被应用到诸如安防、电力、汽车等领域。 以安防市场为例,早在2017年,行业咨询公司IHS Market,我国在公共和私人领域安装有摄像头约1.76亿…

docker启动容器报错

报错信息 [rootDream soft]# docker run -it -d -p 8080:8080 tomcat eec9fab6b9ca06d2bbf1467aef05d8020ee60448978e10ac20c38888934f0a0b docker: Error response from daemon: driver failed programming external connectivity on endpoint hungry_euclid (163242f0079e72…

数值分析第五章节 用Python实现解线性方程组的直接解法

参考书籍:数值分析 第五版 李庆杨 王能超 易大义编 第5章 解线性方程组的直接解法 文章声明:如有发现错误,欢迎批评指正 文章目录 引言与预备知识高斯消去法列主元消去法 矩阵三角分解法杜利特尔分解法平方根法 向量和矩阵的范数误差分析 引言…

Python 进阶(五):os 模块

❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 文章目录 1. 文件和目录的基本操作1.1 获取当前工作目录1.2 更改当前工作目录1.3 获取目录下所有…

qssh使用

到官网下载qssh的源码QSsh-botan-1,使用qtcreator打开后,直接编译,即可得到qssh的库 头文件将QSsh-botan-1\src\libs\ssh目录下的.h文件拷到include文件夹下,即为库头文件。 qssh有个问题,如果你将qssh的类放在子线程…

致敬图灵!HashData拥抱数据智能新时代!

图1:2023ACM中国图灵大会现场 生于1912年的艾伦图灵被称为“计算机科学之父”、“人工智能之父”。1966年,国际计算机协会(ACM)为了纪念这位卓越的科学家,设立了以其名字命名的ACM图灵奖,以表彰在计算机领…

MySQL | 常用命令示例

MySQL | 常用命令示例 一、启停MySQL数据库服务二、连接MySQL数据库三、创建和管理数据库四、创建和管理数据表五、数据备份和恢复六、查询与优化 MySQL是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使用MySQL时,我们经常需要编写一些常用脚…

【初阶C语言】整数比大小

各位大佬的光临已是上上签 在C语言刷题过程中,一定遇到过很多比大小的题目,那么本节就专门介绍比大小的方法,若大佬们还有更优解,欢迎补充呀! 本节讲解的方法主要有三种:1.条件判断 2.三目操作符 3.函数调…

干翻Dubbo系列第四篇:Dubbo3第一个应用程序细节补充

前言 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽都顺利。 如…