[ 持续更新 ] Sprint Boot 常用注解汇总

news/2024/2/28 18:55:07

Sprint Boot 常用注解

请求与响应

@RequestMapping

可以给类或类的属性设置该注解,表示支持的所有 HTTP 请求方法,如 GETPOSTPATCHDELETE

如果给类设置,表示该路径的前缀。给方法设置,表示让这个方法支持所有的请求方式

@RestController
@RequestMapping("/user")
public class UserController {@RequestMappingpublic String user() {// 不管什么请求方式都可以触发该方法}
}

@RequestMapping 注解也可以通过 method 来指定请求方式,如下:

@RequestMapping(value="/user", method=RequestMethod.GET)
// 不过这样的话就没有什么意义了,因为它的简写是
@GetMapping("/user")
// 他们两种方式的结果是等价的

@RequestBody

默认参数传递方式为 x-www-form-urlencoded ,该注解主要用于将参数传递方式设置为 application/json 格式,这样就支持 JSON 格式数据作为参数传递了

@PostMapping
public Result add(@RequestBody User user) {return Result.success(UserService.add(user));
}

@PathVariable

该注解主要用于从 URL 路径中获取动态参数的值

代码示例

@GetMapping("/users/{uid}")
public <List<Course> get(@PathVariable("uid") Integer id){return null;
}

上述代码 {uid} 是一个变量,通过 @PathVariable 获取到它的值然后映射给参数 id 使用。

如果参数名与路径变量名一致,则可以省略括号中的内容 uid,如下:

public <List<Course> get(@PathVariable Integer uid)

数据

@Param

该注解用于映射

Mybatis

@Id

该注解用于在实体类中表示主键的字段

@Table

该注解用于在实体类总表示当前操作的数据表名

@Table(name = "tb_student")
public class Student {...}

@KeySql

使用该注解时,在执行插入操作后,数据库会生成一个自增的主键值,并将其返回给应用程序。然后将自动生成的主键值注入到对象的主键属性中。

通过注解 @KeySql(useGeneratedKeys = true),就可以获取到新增后的数据 id

@Column

该注解用于指定实体类中该成员变量所对应的数据库字段名

@Column(name = "s_id")
private Integer sid;

@Param

通过 @Param 注解,可以为 SQL 语句中的参数指定一个具体的名称,而不是使用默认的参数名称,从而避免名称冲突

@Mapper
public interface UserMapper {@Select("select * from user where id = #{id}")User getUserById(@Param("id") Integer uid);
}

@Transient

当某个属性或类被设置了该注解后,在持久化数据时会被忽略,不会保存到数据库中。

该注解通常用于临时存储数据,不让他保存到数据库中

@Transactional

该注解的作用是事务回滚,保证一组数据库操作要么全部成功执行,要么全部回滚到事务开始状态

JSON

@JsonFormat

该注解可以设置在类或属性上,如果传递的数据是时间格式的,则按照格式转换为指定的时间。否则保持原字符串数据

@JsonFormat(pattern = "yyy-MM-dd", timezone = "GMT+8")

如果该注解声明在类上,相当于给类的所有属性都设置了该注解

@JsonInclude

该注解默认为 ALWAYS 表示序列化全部字段,即使属性值为 null

如果设置为 NON_ABSENT 则表示过滤掉所有为空的属性值

@JsonInclude(JsonInclude.Include.NON_ABSENT)

http://www.ppmy.cn/news/1246593.html

相关文章

9.二维数组——打印出杨辉三角形(要求打印出10行)

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 打印出杨辉三角形&#xff08;要求打印出10行&#xff09;。 二、题目分析 三、解题 程序运行代码 #include<s…

第二十章——多线程

一.线程简介 线程的特点 1.进程是资源分配的最小单位&#xff0c;线程是最小的执行单位 2.一个进程可以有多个线程 3.线程共享进程资源 二.创建线程 1.继承Thread类 1.Thread类是java.lang包中的一个类&#xff0c;从这个类实例化的对象代表线程&#xff0c;程序员启动一…

YOLOv8优化策略:自适应改变核大小卷积AKConv,效果优于标准卷积核和DSConv |2023.11月最新成果

🚀🚀🚀本文改进: AKConv 中,通过新的坐标生成算法定义任意大小的卷积核的初始位置。 为了适应目标的变化,引入了偏移量来调整每个位置的样本形状。 此外,我们通过使用具有相同大小和不同初始采样形状的 AKConv 来探索神经网络的效果。 AKConv 通过不规则卷积运算完成…

独孤思维:立马能赚到钱的项目,要不要?

越是追求所谓的高端牛b的赚钱秘笈&#xff0c;越是过得一贫如洗&#xff1b; 越是不屑所谓的浅显易见的赚钱方法&#xff0c;越是活得狗都不如。 因为在穷人眼里&#xff1a; 只会把投机取巧&#xff0c;一夜暴富&#xff0c;偏门暴利&#xff0c;旁门左道&#xff0c;奉为秘…

Web前端开发技术:图像与多媒体文件

在现代的Web开发中&#xff0c;图像和多媒体文件在各种网站和应用程序中扮演着至关重要的角色。它们不仅能提供更丰富的内容&#xff0c;还能大大提高应用程序的吸引力和用户体验。本文将深入介绍一些关键的Web前端开发技术&#xff0c;这些技术将有助于开发者在处理图像和多媒…

文件服务器迁移

文件服务器迁移还是比较简单的 win server加域 导出配额文件 选中所有项&#xff0c;点击导出 导出共享文件夹权限列表 导出文件夹的权限表&#xff0c;留作备用。需要用到“icacls” icacls c:\windows\* /save aclfile /t # C:\Windows 目录及其子目录中所有文件的 DAC…

LeetCode算法题解(动态规划,股票买卖)|LeetCode121. 买卖股票的最佳时机、LeetCode122. 买卖股票的最佳时机 II

一、LeetCode121. 买卖股票的最佳时机 题目链接&#xff1a;121. 买卖股票的最佳时机 题目描述&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一…

查看当前目录下文件数量

查看当前目录下文件数量 查看文件夹数量查看文件数查看所有文件&#xff08;包括子文件&#xff09;数量查看所有目录&#xff08;包括子目录&#xff09;数量查看图片数量 查看文件夹数量 ls -l | grep ^d | wc -l查看文件数 不包含文件夹 ls -l | grep ^- | wc -l查看所有…

Java面向对象第三天:

精华笔记&#xff1a; 引用类型数组&#xff1a; 给引用类型数组的元素赋值&#xff0c;需要new一下 若想访问对象的属性或调用方法&#xff0c;需要通过数组元素去打点 继承&#xff1a; 作用&#xff1a;代码复用 通过extends来实现继承 超类/父类&#xff1a;共有的属性…

开源编译器LLVM-源码编译

1.编译参考 详细的cmake编译选项&#xff0c;参考&#xff1a;Building LLVM with CMake — LLVM 18.0.0git documentation 2.编译脚本 utils.bash build-llvm.sh 依赖 utils.bash 脚本 #!/usr/bin/env bashCOLOR_FATAL$\033[41;38m COLOR_ERROR$\033[1;31m COLOR_WARN$\03…

k8s-deployment控制器 5

K8s控制器是Kubernetes&#xff08;简称k8s&#xff09;系统中一个重要的组成部分&#xff0c;它是一个管理Pod的中间层&#xff0c;可以创建和管理多个Pod副本&#xff0c;确保它们按照预定的数量和行为进行运行。 通过编写yaml文件将信息全部存到etcd中&#xff0c;控制器通…

iOS-打包上架构建版本一直不出现/正在处理/自动消失

iOS开发过程中&#xff0c;打包上架苹果审核是一个不可或缺的环节。说实话&#xff0c;这个问题我遇见两次了&#xff0c;为了让自己长点记性&#xff0c;决定写下来。首先&#xff0c;列举几种情况&#xff1a; 1.iPa包上传至App store后&#xff0c;一个小时内不显示构建版本…

重生奇迹MU魔法师操作技能

重生奇迹MU魔法师增加伤害加点方式 一、智力敏捷加点&#xff1a;2点智力1点敏捷&#xff0c;这种加点就是智敏结合的加点了&#xff0c;属性是不错的&#xff0c;提升了非常多的属性点&#xff0c;智力是偏重输出的&#xff0c;也是法师最常见的一种加点了&#xff0c;输出伤…

signal函数简介及使用

signal.h是C标准函数库中的信号处理部分&#xff0c;定义了程序执行时如何处理不同的信号。信号用作进程间通信&#xff0c;报告异常行为(如除零)、用户的一些按键组合(如同时按下Ctrl与C键&#xff0c;产生信号SIGINT)。C中的对应头文件是csignal。 C语言标准定义了6个信号&a…

如何通过低代码工具,提升运输行业的运营效率和服务质量

《中国数字货运发展报告》显示&#xff0c;2022年我国公路货运市场规模在5万亿元左右。其中&#xff0c;数字货运整体市场规模约为7000亿元&#xff0c;市场渗透率约为15%。而以小微企业为主的货运行业&#xff0c;却以小、散、乱的行业特征&#xff0c;承载着5万亿元左右的市场…

JehanRio‘s 计算机后端岗位面经汇总(燃烧自己,最干货的一篇 —— 包含C++、408、数据库、Linux、场景题、智力题等等)

前言 其实没有想要发布出来的&#xff0c;但是我的几个粉丝和朋友私信我说非常期望我的面经贴&#xff0c;最后还是决定发布出来&#xff0c;希望能够帮助后人。 本篇将博主整个秋招的面经总结给发布了出来&#xff0c;篇幅很大&#xff0c;超过10W字&#xff0c;涵盖了我平日…

oracle查询开始时间和结束时间之间的连续月份

SELECT TO_CHAR(ADD_MONTHS(TO_DATE(2023-01,YYYY-MM), ROWNUM - 1), YYYY-MM) AS fmonth FROM DUALCONNECT BY ROWNUM < CEIL(MONTHS_BETWEEN(TO_DATE(2023-11, YYYY-MM), TO_DATE(2023-01,YYYY-MM))1)

C#中的警告CS0120、CS0176、CS0183、CS0618、CS0649、CS8600、CS8601、CS8602、CS8604、CS8625及处理

目录 一、CS0120 二、CS0176 1.解决前 2.解决后 3.解决办法 三、CS0183 四、CS0618 五、CS8600 六、CS8602 七、CS8622 1. 解决前&#xff1a; 2. 解决后&#xff1a; 3.解决方法&#xff1a; 八、CS8604和CS8625 九、CS0649 十、CS8601 一、CS0120 严重性 代…

Java实现集合和Excel文件相互转换

目录 一、集合转化为Excel文件二、Excel文件转化为集合 一、集合转化为Excel文件 效果如下&#xff0c;是将集合转化为Excel文件&#xff0c;Excel包含合并单元格。 实体类&#xff1a; Data public class ClassGrade {/** 年级 */private String grade;/** 班主任 */privat…

【nlp】4.1 fasttext工具介绍(文本分类、训练词向量、词向量迁移)

fasttext工具介绍与文本分类 1 fasttext介绍1.1 fasttext作用1.2 fasttext工具包的优势1.3 fasttext的安装1.4 验证安装2 fasttext文本分类2.1 文本分类概念2.2 文本分类种类2.3 文本分类的过程2.4 文本分类代码实现2.4.1 获取数据2.4.2 训练集与验证集的划分2.4.3 训练模型2.4…
最新文章