SpringBoot常用注解

2023-11-07

实体类常用注解

@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法

@AllArgsConstructor : 注在类上,提供类的全参构造

@NoArgsConstructor : 注在类上,提供类的无参构造

@Setter : 注在属性上,提供set方法

@Getter : 注在属性上,提供get方法

@EqualsAndHashCode : 注在类上,提供对应的equals 和 hashCode方法

@Log4j/@Slf4j : 注在类上,提供对应的Logger对象,变量名为log

Controller层常用注解

@Postmapping

如果执行添加操作, 后面的添加请求不会覆盖前面的请求, 所以使用@Postmapping

@PutMapping

如果执行修改操作, 后面的修改请求会把前面的请求给覆盖掉, 所以使用@PutMapping

@PatchMapping

Patch方式是对put方式的一种补充;

put方式是可以更新.但是更新的是整体.patch是对局部更新;

@DeleteMapping

@DeleteMapping注解用于处理HTTP DELETE请求,并将请求映射到删除方法中。

@RestController

@RestController相当于是@Controller和@ResponseBody的组合注解。

@Controller:@Controller标识的类,该类代表控制器类(控制层/表现层)。这里控制层里面的每个方法,都可以去调用@Service标识的类(业务逻辑层),@Service标识的类中的方法可以继续调用@Resposity标识的接口实现类(Dao层/持久层)

**@ResponseBody:**会自动将控制器中方法的返回值写入到HTTP响应中。用@ResponseBody标记Controller类中的方法,把return的结果变成JSON对象返回。(如果没有这个注解,这个方法只能返回要跳转的路径即跳转的html/JSP页面。有这个注解,可以不跳转页面,只返回JSON数据)

@PathVariable

@PathVariable注解是将方法中的参数绑定到请求URI中的模板变量上。可以通过@RequestMapping注解来指定URI的模板变量,然后使用@PathVariable注解将方法中的参数绑定到模板变量上。特别地,@PathVariable注解允许我们使用value或name属性来给参数取一个别名。

  • 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。

提示:如果参数是一个非必须的,可选的项,则可以在@PathVariable中设置require = false

@RequestParam

该注解的其他属性配置与@PathVariable的配置相同,特别的,如果传递的参数为空,还可以通过defaultValue设置一个默认值。

@RequestParam注解有三个参数

  • required 表示是否必须,默认为 true,必须。
  • defaultValue 可设置请求参数的默认值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值。
  • value 为接收url的参数名(相当于key值)。

@RequestParam , 是获取前端传递给后端的参数,可以是get方式,也可以是post方式。其中如果前端传递的参数和后端你接受的参数起的名字字段是一致的可以省略不写,也可以直接写@RequestParam String title,如果不一致一定要完整写,

http://localhost:8080/books?isbn=1234

@GetMapping("/books/")
    public Book getBookDetails(@RequestParam("isbn") String isbn) {

@RequestBody

主要用来接收前端传递给后端json字符串中的数据的(请求体中的数据的);

@RequestBody 用在方法参数上面,用来将请求参数绑定到request body中,通过HttpMessageConverter封装为具体的JavaBean。通俗点讲就是你在一个参数上加上该注解,spring就会将request body中的json/xml对象解析成该参数类型的Javabean对象。

GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。

在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

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

SpringBoot常用注解 的相关文章

  • 如何在Python中将提取的文本从PDF转换为JSON或XML格式?

    我正在使用 PyPDF2 从 PDF 文件中提取数据 然后转换为文本格式 该文件的 PDF 格式如下 Name John Address 123street USA Phone No 123456 Gender Male Name Jim
  • 如何使用 JAVA 代码以编程方式捕获线程转储?

    我想通过 java 代码生成线程转储 我尝试使用 ThreadMXBean 为此 但我没有以正确的格式获得线程转储 因为我们正在使用jstack命令 请任何人提供一些帮助 他们是否有其他方式获取线程转储 使用任何其他 API 我想要的线程转
  • 文本在指定长度后分割,但不要使用 grails 打断单词

    我有一个长字符串 需要将其解析为长度不超过 50 个字符的字符串数组 对我来说 棘手的部分是确保正则表达式找到 50 个字符之前的最后一个空格 以便在字符串之间进行彻底的分隔 因为我不希望单词被切断 public List
  • 埃拉托色尼筛法 - 实现返回一些非质数值?

    我用 Java 实现了埃拉托斯特尼筛法 通过伪代码 public static void sieveofEratosthenes int n boolean numArray numArray new boolean n for int i
  • 您建议使用哪种压缩(GZIP 是最流行的)servlet 过滤器?

    我正在寻找一个用于大容量网络应用程序的 GZIP servlet 过滤器 我不想使用容器特定的选项 要求 能够压缩响应负载 XML Faster 已在大批量应用的生产中得到验证 应适当设置适当内容编码 跨容器移植 可选择解压缩请求 谢谢 我
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • 如何在java Spring Boot中实现通用服务类?

    我有许多具有重复代码的服务 我想知道如何实现通用服务 以便我的所有服务都可以扩展它 服务接口示例 重复代码 Service public interface IUserService List
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • Android蓝牙java.io.IOException:bt套接字已关闭,读取返回:-1

    我正在尝试编写一个代码 仅连接到运行 Android 5 0 KitKat 的设备上的 目前 唯一配对的设备 无论我尝试了多少方法 我仍然会收到此错误 这是我尝试过的最后一个代码 它似乎完成了我看到人们报告为成功的所有事情 有人能指出我做错
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 从休眠乐观锁定异常中恢复

    我有一个这样的方法 Transactional propagation Propagation REQUIRES NEW public void doSomeWork Entity entity dao loadEntity do some
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • Java - 从 XML 文件读取注释

    我必须从 XML 文件中提取注释 我找不到使用 JDOM 或其他东西来让它们使用的方法 目前我使用 Regex 和 FileReader 但我不认为这是正确的方法 您可以使用 JDOM 之类的东西从 XML 文件中获取注释吗 或者它仅限于元
  • IntelliJ 组织导入

    IntelliJ 是否具有类似于 Eclipse 中的组织导入功能 我拥有的是一个 Java 文件 其中多个类缺少导入 例子 package com test public class Foo public Map map public J
  • Lombok @Builder 不创建不可变对象?

    在很多网站上 我看到 lombok Builder 可以用来创建不可变的对象 https www baeldung com lombok builder singular https www baeldung com lombok buil
  • 无需登录即可直接从 Alfresco 访问文件/内容

    我的场景是这样的 我有一个使用 ALFRESCO CMS 来显示文件或图像的 Web 应用程序 我正在做的是在 Java servlet 中使用用户名和密码登录 alfresco 并且我可以获得该登录的票证 但我无法使用该票证直接从浏览器访
  • 使用 JFreeChart 为两个系列设置不同的 y 轴

    我正在使用 JFreeChart 使用折线图绘制两个数据系列 XYSeries 复杂的因素是 其中一个数据系列的 y 值通常远高于第二个数据系列的 y 值 假设第一个系列的 y 值约为数百万数量级 而第二个数据系列的 y 值约为数百万数量级

随机推荐

  • AD软件画电路图笔记

    最近使用AD软件画了一个arduino的板子 自己画原理图库 pcb库 原理图 pcb图 以及后来打板和原材料购买 和后来的硬件电路焊接 及硬件电路测试和烧录程序 这是我整个流程下来记的笔记 分享给大家 一 AD软件新建项目 1 两库 原理
  • Flutter Android端启动白屏

    问题描述 Flutter 应用在 Android 端上启动时会有一段很明显的白屏现象 白屏的时长由设备的性能决定 设备性能越差 白屏时间越长 问题分析 其实启动白屏的问题在Android原生应用上也是一个常见问题 大致是因为从用户点击 La
  • GameofMir引擎架设传奇服务器【2:登录器配置】

    工具 1 gom引擎自带的登录器 这里没有自带的登录器 游戏运行不了 里面带有一些密码和UI相关的文件 2 绿盟配置器 当然也可以用其他的 这里使用的绿盟的免费版本 都解压后开始配置 这里进入绿盟的文件夹 把这几个文件复制到gom自带的登录
  • C关键字volatile

    其实我想看的 想做笔记的就是就是那个汇编例子 看来汇编例子有助于了解啊 以前听人说过 高手都能将每一句C语言对应一句汇编语言 C语言关键字volatile 1 C语言关键字volatile C语言关键字volatile 注意它是用来修饰变量
  • 【maven】scalac:error while loading <root>,Error accessing

    1 概述 今天运行flink程序 编译时报如下错误 意思是访问maven下载的jar包出错 但是这个jar包已经下载好了 于是我进入jar包所在的路径 发现该包的大小只有1KB 感觉是下载有问题 于是删除该jar包 然后在pom中reimp
  • 5款linux下的笔记软件

    Evernote是一个很好的笔记软件 但是却没有linux版本 下面介绍5款linux下最好的笔记软件 1 Springseed Springseed 是 Jono Cooper 和 Michael Harker 一起开发的 是一个使用非常
  • Python手册(Standard Library)--datetime+time+calendar

    文章目录 datetime datetime timedelta datetime date datetime datetime datetime time python中时间日期格式化符号 time time struct time 时间
  • transformer论文_Transformer相关论文阅读笔记

    最近在使用Transformer模型跑任务 正好加入了同学组织的一个暑期文献打卡群 于是决定假期每天读一篇文献 主要关于近两年对于Transformer模型应用的论文 阅读论文的笔记分享给大家 7月18日 R transformer Rec
  • 安装pytorch-metric-learning

    https github com KevinMusgrave pytorch metric learning pytorch metric learning的github官方网址 安装pytorch metric learning 1 直接
  • vite遇见跨域怎么解决

    1 找到vite config js 2 找到defineConfig下面的server proxy 代理名称 target 地址 changeOrigin true rewrite path gt path replace 代理名称 3
  • 数字分类 C语言

    给定一系列正整数 请按要求对数字进行分类 并输出以下 5 个数字 A1 能被 5 整除的数字中所有偶数的和 A2 将被 5 除后余 1 的数字按给出顺序进行交错求和 即计算 n1 n2 n3 n4 A3 被 5 除后余 2 的数字的个数 A
  • Element-ui使用Select多选框如何给value属性绑定对象类型

    如何给select多选下拉框的value属性绑定对象类型时怎么做 现在select标签处有一个value key属性绑定值必须是为option标签中v for遍历的数组中的元素 该元素值必须具有唯一性 在option属性key处绑定值为数组
  • 分类算法及其应用场景

    单一的分类方法主要包括 LR逻辑回归 SVM支持向量机 DT决策树 NB朴素贝叶斯 NN人工神经网络 K 近邻 集成学习算法 基于Bagging和Boosting算法思想 RF随机森林 GBDT Adaboost XGboost
  • 使用vim编写并编译运行C++程序并添加代码补全等功能

    听说使用vim写程序效率非常高 今天满怀一腔热血准备把vim整利索了 写篇笔记记录一下防止以后忘了 vim功能很多 我也只能是解决我现在的需求 以后遇到更多的需求再扩充 如果读者有什么建议和问题欢迎留言讨论 vim 编写一个C 程序并保存
  • Java中实现文件上传下载的三种解决方案(推荐)

    前言 文件上传是一个老生常谈的话题了 在文件相对比较小的情况下 可以直接把文件转化为字节流上传到服务器 但在文件比较大的情况下 用普通的方式进行上传 这可不是一个好的办法 毕竟很少有人会忍受 当文件上传到一半中断后 继续上传却只能重头开始上
  • 我的 2020 总结:跌宕起伏

    文章目录 复盘与展望 复盘与展望 2020总结 2021计划 个人 生理健康 55kg前半年熬夜较多眼睛干涩 眼睑有障碍 经常热敷毛巾 蒸汽眼罩滴眼药水 坚持锻炼 俯卧撑 开合跳 心理健康 6月份左右申请过劳动仲裁 迟迟拿不到钱比较着急 找
  • 初步学习MapReduce编程——编程实现文件合并和去重操作

    对于两个输入文件 即文件A和文件B 编写MapReduce程序 对两个文件进行合并 并剔除其中重复的内容 得到一个新的输出文件C 数据放TXT文件时 不能多出数据外的空行光标 不然运行程序时会显示错误 For input string 直接
  • From System Services Freezing to System Server Shutdown in Android: All You Need ....阅读报告

    From System Services Freezing to System Server Shutdown in Android All You Need Is a Loop in an App 阅读笔记 概述 这篇文章从安卓系统进程S
  • angular指令和管道_Angular单元测试开发人员指南—第2部分(服务,管道,指令)

    angular指令和管道 Explore how to write test cases for shared services Http services pipes and attribute directives in Angular
  • SpringBoot常用注解

    实体类常用注解 Data 注在类上 提供类的get set equals hashCode canEqual toString方法 AllArgsConstructor 注在类上 提供类的全参构造 NoArgsConstructor 注在类