springboot+vue+mysql项目使用的常用注解

news/2024/4/21 13:26:53/文章来源:https://blog.csdn.net/qq_52879387/article/details/136396072

实体类常用注解

@Data

@Data 是一个 Lombok 提供的注解,使用 @Data 注解可以简化代码,使代码更加简洁易读。

  • 作用:自动为类生成常用的方法,包括 getter、setter、equals、hashCode 和 toString 等
  • 需要加Lombok的依赖
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.4</version><scope>provided</scope>
</dependency>

@ApiModel

@ApiModel注解是用在接口相关的实体类上的注解,它主要是用来,常常和@ApiModelProperty注解配合使用

  • 作用:对使用该注解的接口相关的实体类添加额外的描述信息,作用在类上
  • value:对所需要特别说明的接口相关实体类进行描述,默认值就是实体类的名称
  • description:对所需要特别说明的接口相关实体类进行较长的描述
  • 参考博客
    • @ApiModel注解与@ApiModelProperty注解
@ApiModel(value="User对象", description="用户表")
public class User implements Serializable {

@ApiModelProperty

  • 作用:添加和操作属性模块的数据
    -value:为此属性的简要描述(数据库内给当前字段的备注是什么在value内就填什么)
  • 参考博客
    • @ApiModelProperty注解的用法(官方平台推荐文章)
@ApiModelProperty(value = "主键id")

在这里插入图片描述

@TableId

  • 作用:将属性所对应的字段指定为主键
  • value:指定主键的字段,要和数据库表中的属性名一致,要不然最终的查询结果是null
  • type:设置主键生成策略,不指定的话默认雪花算法 (数据库勾选自动递增)
    • 雪花算法的核心思想就是:使用一个64 bit的 long 型的数字作为全局唯一ID。算法中还引入了时间戳,基本上保证了自增特性。
  • 参考博客
    • Mybatis-plus知识总结(一)TableId、TableField和TableName注解的作用
    • MYBatis-Plus常用注解@TableName、@TableId、@TableField、@TableLogic
    @TableId(value = "id", type = IdType.AUTO)private Long id;

@TableName

  • 作用:设置实体类对应的表明
  • value:value指定数据库中的表名
  • 参考博客
    • Mybatis-plus知识总结(一)TableId、TableField和TableName注解的作用
@TableName("user")

@NotBlank

  • 作用:参数校验,适用于 String 类型的数据上,加了@NotBlank 注解的参数不能为 Null 且 trim() 之后 size > 0,必须有实际字符
  • message :自定义异常信息
  • 参考博客
    • @NotNull @NotEmpty @NotBlank java校验注解 validation
    @ApiModelProperty(value = "用户名")@NotBlank(message = "用户名不能为空")private String username;

@JsonFormat

Jackson中定义的一个注解,是一个时间格式化注解,写在属性上

  • 作用:把DATE类型的数据转化成为我们想要的格式(用于返回日期数据时的时间格式化)
  • pattern:自定义转化时间格式
  • 参考博客
  • SpringBoot - @JsonFormat注解详解
<!-- JSON工具类 -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.6</version>
</dependency>
    @ApiModelProperty(value = "出生年月日")@JsonFormat(pattern="yyyy-MM-dd")private Date birthday;

@TableField

  • 作用:解决实体类的字段名与数据库中的字段名不匹配的问题
  • value:指定数据库表中字段名
    @ApiModelProperty(value = "逻辑删除")@TableField("`delete`")private Integer delete;

@TableLogic

  • 作用:在实体类中属性加上@TableLogic注解,表示该字段是逻辑删除字段,实现逻辑删除
  • value = “未删除的值,默认值为0”
    @ApiModelProperty(value = "逻辑删除")@TableLogic@TableField("`delete`")private Integer delete;

Dao层

@Repository

  • 作用:将 DAO 类声明为 Bean,表明这个类具有对数据库CRUD的功能,用在持久层的接口上
  • 参考博客
    • @Repository注解的作用和用法,以及和@Mapper的区别

@Mapper

  • 作用:相当于一个mapper.xml文件,将接口生成一个动态代理类
  • 目的:不再写mapper映射文件
  • 参考博客
    • Mapper层注解讲解

@Param

  • 作用:标记方法参数,指定该参数的名称和类型,在使用该参数时可以通过名称来引用。
  • Constants.WRAPPER:表明参数是wrapper条件
  • 参考博客
    • @Param详解
List<WarnVo> selectWarn(@Param(Constants.WRAPPER) QueryWrapper<WarnVo> wrapper);

Service层

@Service

  • 作用:标记服务层 Bean
  • 好处:使用Service注解的服务类为其他组件提供了一种复用业务逻辑的方法,能够减少重复代码的编写
  • 参考博客
    • Spring注解之Service详解

@Autowired

  • 作用:对类成员变量、方法及构造函数进行标注,完成自动装配的工作
  • required参数默认是true,开启自动装配
  • 参考博客
    • @Autowired用法详解
  • @Autowired和@Resource注解区别
    • 1、@autowired注解由spring提供,只按照bytype注入;@resource注解由j2ee提供,默认按照byname自动注入。
    • 2、@autowired默认按类型进行装配,@resource默认按照名称进行装配。

@Override

  • 作用:表示被标注的方法是一个重写方法
  • 好处:帮助自己检查是否正确的重写父类方法,明显的提示看代码的人,这是重写的方法
  • 参考博客
    • 详解@Override注解

@Transactional

  • 作用:事物的注解,保证数据的一致性
  • 声明式事务:将具体业务与事务处理部分解耦,代码侵入性很低
  • 在对多张表进行操作的时候加上事务注解
  • 参考博客
    • @Transactional详解

Controller层

@RestController

@RestController = @Controller + @ResponseBody

  • 作用:对控制器类进行注释,同时拥有@Controller + @ResponseBody注解的功能
  • 使用该注解响应数据可以是文本或JSON数据类型
  • 属于springmvc,并不属于springboot
  • 参考博客
    • @RestController注解

@RequestMapping

  • 作用:处理请求地址映射,可用于映射一个请求或一个方法,可以用在类或方法上
  • 标注在方法上,表示在类的父路径下追加方法上注解中的地址将会访问到
  • 参考博客
    • @RequestMapping详解
@RequestMapping("/tain/warn")
public class TainWarnController {@Autowiredprivate ITainWarnService iTainWarnService;@Autowiredprivate SysDictService sysDictService;@Autowiredprivate IDeviceService iDeviceService;@GetMapping("/queryWarnMessage")public R queryWarnMessage(@RequestParam Map<String,Object> params){PageUtils page = iTainWarnService.queryWarnPage(params);return R.ok().put("page",page);}
}

此时访问路径就要加上/tain/warn/queryWarnMessage

RESTFUL URL

RESTful是一种web api的标准,也就是一种url设计规范

@GetMapping(“路径”)

  • 作用:从服务器取出资源(一项或多项)
  • 当客户端发送HTTP GET请求时,Spring Boot会自动将请求映射到具有相应URL路径的控制器方法上
  • 参考博客
    • Spring Boot中的@GetMapping注解,如何使用

@PostMapping(“路径”)

  • 作用:在服务器新建一个资源
  • 自动转换为 JSON 或 XML:@PostMapping 注解可以自动将请求体中的数据转换为 Java 对象,并将返回值转换为 JSON 或 XML 格式,方便客户端解析处理
  • 参考博客
    • Spring Boot 中的 @PostMapping 注解,如何使用

@PutMapping(“路径”)

  • 作用:在服务器更新资源(客户端提供完整资源数据)
  • 不常用,仅作了解

@DeleteMapping(“路径”)

  • 作用:从服务器删除资源
  • 不常用,仅作了解

@RequestParam

  • 作用:将请求参数区域的数据映射到控制层方法的参数上
  • 三大属性
    • value:请求参数名(必须配置)
    • required:是否必需,默认为 true,即 请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置)
    • defaultValue:设置默认值,如果设置了该值,required 将自动设为 false,无论你是否配置了required,配置了什么值,都是 false(可选配置)
  • 参考博客
    • @RequestParam详解

@PathVariable

  • 作用:便捷地提取URL中的动态参数
  • 只支持一个属性value,类型是为String,代表绑定的属性名称
  • 在@RequestMapping请求路径中,将需要传递的参数用花括号{}括起来,然后,通过@PathVariable(“参数名称”)获取URL中对应的参数值。如果@PathVariable标明参数名称,则参数名称必须和URL中参数名称一致
  • 参考博客
    • 请求参数获取:@RequestParam、@PathVariable、@RequestHeader、@CookieValue、@RequestBody、@RequestAttribute注解详细分析
    @GetMapping("/info/{id}")public R info(@PathVariable("id") Long id){User user = iUserService.getById(id);return R.ok().put("user",user);}

@SysLog

  • 作用:标记方法或类,以记录系统日志或操作日志
  • 可以在目标方法或类上添加注解,并在需要记录日志的操作处调用相应的日志记录逻辑
    在这里插入图片描述

@ResponseBody

  • 作用:将java对象转为json格式的数据,然后直接写入HTTP response 的body中;一般在异步获取数据时使用
  • 参考博客
    • @ResponseBody用法详解
    • 浅析@ResponseBody注解作用和原理

非三层架构层

@Component

  • 作用:实现bean的注入,取代 xml配置文件
  • 用于非三层架构但是需要被使用的层

@EnableScheduling

  • 作用:启用 Spring 的定时任务

@Scheduled

  • 作用:指定执行的时间间隔或时间点
  • fixedRate:指定时间间隔
  • cron:使用表达式来决定时间点
  • 在线Cron表达式生成器
  • 参考博客
    • 每天一个注解之@EnableScheduling
    @Scheduled(fixedRate = 5000)  // 每隔5秒执行一次public void doTask() {
    @Scheduled(cron = "5 * * * * ? ")//每五秒执行一次public void doTask(){

二者皆可

@SpringBootApplication

@SpringBootApplication这个注解是springboot启动类上的一个注解,是一个组合注解,也就是由其他注解组合起来,它的主要作用就是标记说明这个类是springboot的主配置类,springboot可以运行这个类里面的main()方法来启动程序
这个注解主要由三个子注解组成:

  1. @SpringBootConfiguration
  2. @EnableAutoConfiguration
  3. @ComponentScan

以上是本人在做一个小项目时遇到的所有注解,如有不对评论指出改正,谢谢`(∩_∩)′

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

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

相关文章

vue系列——vscode,node.js vue开发环境搭建

第一步安装node.js 推荐使用nvm进行node.js 的安装 nvm(Node.js version manager) 是一个命令行应用&#xff0c;可以协助您快速地 更新、安装、使用、卸载 本机的全局 node.js 版本。 可以去网上查找相关版本 我这里使用 nvm-setu… 链接:https://pan.baidu.com/s/1UEUtmzw5x…

【数据结构】红黑树(RBTree)

介绍 概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出两倍&#xff0c;因而是…

专家解读:2024年十大项目管理工具综合排名与评价

2024年涌现出一批新的项目管理工具&#xff0c;各具特色的功能和设计为企业解决了诸多的管理难题。今天我们就来盘点2024年的十款项目管理工具Zoho Projects、AgileMaster、PlanItAll、CommuniQ、WorkFlowRanger、GanttGenius、RiskAssessor、TeamHarmony、BudgetBoss、CloudCo…

智能控制:物联网智能插座对接文档

介绍 一开始买的某米的插座&#xff0c;但是好像接口不开放&#xff0c;所以找到了这个插座&#xff0c;然后自己开发了下&#xff0c;用接口控制插座开关。wifi的连接方式&#xff0c;通电后一般几秒后就会连接上wifi&#xff0c;这个时候通过接口发送命令给他。 产品图片 通…

#QT(DEMO)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;打印"hello wolrd" 3.记录 &#xff08;1&#xff09;创建一个新工程&#xff1a; 新建好一个工程存放文件夹&#xff08;路径不能有中文&#xff09;,然后按下图配置 &#xff08;2&#xff09;点击widgets.ui拖入以…

聚焦两会 | 从2024年政府工作报告看网络安全新机

在今年的《政府工作报告》&#xff08;下面简称“报告”&#xff09;中&#xff0c;除了对2023年里我国所取得的重大成就作了全面总结外&#xff0c;针对2024年全年经济社会发展作出的部署安排引起全国人民的关注。报告中与网络安全相关的内容也引起网络安全行业相关从事人员的…

如何查看前端的vue项目是vue2还是vue3项目

1. 检查package.json文件 在项目的根目录下&#xff0c;打开package.json文件&#xff0c;查找dependencies或devDependencies部分中的vue条目。版本号将告诉你是Vue 2还是Vue 3。例如&#xff1a; Vue 2.x: "vue": "^2.x.x"Vue 3.x: "vue": &…

vue svelte solid 虚拟滚动性能对比

前言 由于svelte solid 两大无虚拟DOM框架&#xff0c;由于其性能好&#xff0c;在前端越来越有影响力。 因此本次想要验证&#xff0c;这三个框架关于实现表格虚拟滚动的性能。 比较版本 vue3.4.21svelte4.2.12solid-js1.8.15 比较代码 这里使用了我的 stk-table-vue(np…

微信小程序用户登陆和获取用户信息功能实现

官方文档&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 接口说明&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html 我们看官方这个图&#xff0c;梳理一下用户…

IEEE754标准的c语言阐述,以及几个浮点数常量

很多年前&#xff0c;调研过浮点数与整数之间的双射问题&#xff1a; win7 intel x64 cpu vs2013 c语言浮点数精度失真问题 最近重新学习了一下IEEE754标准&#xff0c;也许实际还有很多深刻问题没有被揭示。 计算机程序设计艺术&#xff0c;据说这本书中也有讨论。 参考&…

校招中的“熟悉linux操作系统”一般是指达到什么程度?

校招中的“熟悉linux操作系统”一般是指达到什么程度&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&am…

官网:随便搞个?那不如不搞,搞不好就给公司减分了。

官网建设确实需要认真对待&#xff0c;不能随便搞。一个粗制滥造的官网可能会给公司带来负面影响&#xff0c;降低品牌形象和用户体验。以下是一些官网建设的重要原则&#xff1a; 专业性&#xff1a;官网应该展示公司的专业性和专业知识。它应该以专业的设计、内容和功能来展示…

uipath调用js代码

1&#xff0c;调用js代码&#xff0c;不带参数&#xff0c;没有返回值 为了去掉按钮的disabled属性 function(){ document.getElementsByClassName(submitBtn)[0].removeAttribute(disabled); } 2&#xff0c;调用js代码&#xff0c;带参数&#xff0c;没有返回值 输入参数&a…

Day 6.有名信号量(信号灯)、网络的相关概念和发端

有名信号量 1.创建&#xff1a; semget int semget(key_t key, int nsems, int semflg); 功能&#xff1a;创建一组信号量 参数&#xff1a;key&#xff1a;IPC对像的名字 nsems&#xff1a;信号量的数量 semflg&#xff1a;IPC_CREAT 返回值&#xff1a;成功返回信号量ID…

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置(上)

Hololens 2应用开发系列&#xff08;2&#xff09;——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言 在前面的文章中&…

有一点好看的wordpress外贸独立站模板

手机配件wordpress外贸网站模板 充电器、移动电源、手机膜、手机电池、手机壳、手机转接头等手机配件wordpress外贸网站模板。 https://www.jianzhanpress.com/?p3809 车载电器wordpress外贸网站模板 车载吸尘器、空气净化器、行车记录仪、车载充电器、车载影音导航等车载电…

两数之和(c++ 、c)

给定一个整数数组nums和一个整数目标值target&#xff0c;请你再该数组中找出和为目标值target的那两个数&#xff0c;并返回它们的数组下标 题目介绍方法一思路及算法复杂度分析 方法二&#xff1a;哈希表什么是哈希表思路及算法C中unordered_map用法复杂度分析 方法三&#x…

C++ STL自定义排序

更具体的看【速记】C STL自定义排序 - 知乎 (zhihu.com) sort sort第三个位置放的greater<int>和less<int>萌新可能会弄错&#xff0c;这两个单词不是更大和更小的意思&#xff0c;而是大于和小于&#xff0c;并且比较就是自定义排序中的前者和后者。 如果是less…

【CSP试题回顾】201503-3-节日

CSP-201503-3-节日 关键点&#xff1a;格式化输出 在C中&#xff0c;格式化输出通常利用iostream库中的功能&#xff0c;特别是iomanip头文件提供的一系列操作符。这些操作符用于控制输出格式&#xff0c;如宽度、填充、对齐方式等。在你提供的代码中&#xff0c;用于格式化输…

电脑要用多少V的电源?电脑电源输入电压是市电

台式电源的输出电压是多少&#xff1f; 电脑电源输出一般有三种不同的电压&#xff0c;分别是&#xff1a; 12V、5V、3.3V。 电脑电源负责给电脑配件供电&#xff0c;如CPU、主板、内存条、硬盘、显卡等&#xff0c;是电脑的重要组成部分。 工作电流根据不同的硬件及其使用状…