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

实体类常用注解

@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.rhkb.cn/news/270205.html

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

相关文章

Linux高级编程:网络

回顾&#xff1a; 进程间的通信&#xff1a; 同一主机内通信&#xff1a; 传统的进程间通信方式&#xff08;管道、信号&#xff09;&#xff1b; IPC对象&#xff08;共享内存&#xff0c;消息队列&#xff0c;信号量集&#xff09;&#xff1b; 不同主机间进程的通信&#…

C++ 链表OJ

目录 1、2. 两数相加 2、24. 两两交换链表中的节点 3、143. 重排链表 4、23. 合并 K 个升序链表 5、25. K 个一组翻转链表 解决链表题目常用方法&#xff1a; 1、画图 2、引入虚拟"头”结点 便于处理边界情况方便我们对链表操作 3、大胆定义变量&#xff0c;减少连接…

STM32CubeMX软件界面花屏,混乱的解决方案。

添加系统环境变量:J2D_D3D 值:false 即可解决。

MySQL:一行记录如何

1、表空间文件结构 表空间由段「segment」、区「extent」、页「page」、行「row」组成&#xff0c;InnoDB存储引擎的逻辑存储结构大致如下图&#xff1a; 行 数据库表中的记录都是按「行」进行存放的&#xff0c;每行记录根据不同的行格式&#xff0c;有不同的存储结构。 页…

机器学习中类别不平衡问题的解决方案

类别不平衡问题 解决方案简单方法收集数据调整权重阈值移动 数据层面欠采样过采样采样方法的优劣 算法层面代价敏感集成学习&#xff1a;EasyEnsemble 总结 类别不平衡&#xff08;class-imbalance&#xff09;就是指分类任务中不同类别的训练样例数目差别很大的情况 解决方案…

信呼OA普通用户权限getshell方法

0x01 前言 信呼OA是一款开源的OA系统&#xff0c;面向社会免费提供学习研究使用&#xff0c;采用PHP语言编写&#xff0c;搭建简单方便&#xff0c;在中小企业中具有较大的客户使用量。从公开的资产治理平台中匹配到目前互联中有超过1W的客户使用案例。 信呼OA目前最新的版本是…

码住!微信自动回复的实现方式

对于很多企业和个人来说&#xff0c;如何高效地回复微信客户消息是一个非常重要的问题。在这样的需求下&#xff0c;使用微信管理系统的机器人自动回复功能成为了一种不错的选择。 1、自动通过好友 当有大量的好友请求时&#xff0c;手动处理好友申请会变得非常繁琐。而微信管…

C++max函数的使用案例20个

文章目录 1. **基本用法&#xff1a;**2. **比较浮点数&#xff1a;**3. **比较字符串&#xff1a;**4. **使用自定义比较函数&#xff1a;**5. **比较容器中的元素&#xff1a;**6. **使用std::initializer_list&#xff1a;**7. **变长参数版本&#xff08;C11及以上&#xf…

Elasticsearch搜索引擎

目录 初识elasticsearch 了解ES 什么是elasticsearch elasticsearch的发展 搜索引擎技术排名&#xff1a; 总结 倒排索引 正向索引和倒排索引 正向索引 倒排索引 总结 es的一些概念 文档 索引 概念对比 架构 总结 安装es&#xff0c;kibana 安装es 安装kiba…

Redis的三种集群模式(图解)

主从复制模式 一个主节点和多个从节点。主节点提供写入和读取功能&#xff0c;但是从属节点只提供读取功能。 主从复制的数据同步过程如下&#xff1a; &#xff08;1&#xff09;首先主节点启动&#xff0c;然后从属节点启动&#xff0c;从属节点会连接主节点并发送SYNC命令以…

Android多线程实现方式及并发与同步,Android面试题汇总

一. 开发背景 想要成为一名优秀的Android开发&#xff0c;你需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样。 我们的项目需要开发一款智能硬件。它由 Web 后台发送指令到一款桌面端应用程序&#xff0c;再由桌面程序来控制不同的硬件设…

python 蓝桥杯填空题

文章目录 字母数判断列名&#xff08;进制问题&#xff09;特殊日期大乘积星期几 字母数 由于是填空题&#xff0c;那么寻找的话&#xff0c;就直接让每一个位置都是A,通过计算看看是不是结果大于2022即可 判断列名&#xff08;进制问题&#xff09; 这道题目&#xff0c;我们可…

Claude 3家族惊艳亮相:AI领域掀起新浪潮,GPT-4面临强劲挑战

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-agd7RSCGMblYxo85 {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

chatgpt-3的文章生成器有哪些?可以批量生成文章的生成器

GPT-3&#xff08;Generative Pre-trained Transformer 3&#xff09;作为人工智能领域的一项重大突破&#xff0c;开启了新一代的文本生成技术。同时市面上也涌现出了一些GPT-3文章生成器&#xff0c;为用户提供了快速、高效地生成各种类型文章的工具。本文将介绍一些中国的GP…

[BUG]vscode插件live server无法自动打开浏览器

问题描述&#xff1a; 点了open with live server但是浏览器没有自动跳出来 http://127.0.0.1:5500/里面是有东西的 解决方法&#xff1a; 配置环境变量&#xff0c;在path中添加program files

2023天津公租房网上登记流程图,注册到信息填写

2023年天津市公共租赁住房网上登记流程图 小编为大家整理了天津市公共租赁住房网上登记流程&#xff0c;从登记到填写信息。 想要体验的朋友请看一下。 申请天津公共租赁住房时拒绝申报家庭情况会怎样&#xff1f; 天津市住房保障家庭在享受住房保障期间&#xff0c;如在应申…

闰年导致的哪些 Bug

每次闰年对程序员们都是一个挑战&#xff0c;平时运行好好的系统&#xff0c;在 02-29 这一天&#xff0c;好像就会有各种毛病。 虽然&#xff0c;提前一天&#xff0c;领导们都会提前给下面打招呼。但是&#xff0c;不可避免的&#xff0c;今天公司因为闰年还是有一些小故障。…

BUUCTF-Misc-百里挑一

题目链接&#xff1a;BUUCTF在线评测 (buuoj.cn) 下载附件打开是一个流量包文件&#xff1a; 全是在传图片时候的流量&#xff0c;先把图片保存出来文件–>导出对象–>HTTP–>保存到一个文件夹 然后使用kali下的exiftool找到了一半flag exiftool *|grep flag 另外一半…

vulhub中ThinkPHP5 5.0.23 远程代码执行漏洞复现

ThinkPHP是一款运用极广的PHP开发框架。其5.0.23以前的版本中&#xff0c;获取method的方法中没有正确处理方法名&#xff0c;导致攻击者可以调用Request类任意方法并构造利用链&#xff0c;从而导致远程代码执行漏洞。 环境启动后&#xff0c;访问http://your-ip:8080即可看到…

Linux系统:内核参数调优

目录 1、/proc目录 2、sysctl命令 3.1 控制源路由验证 3.2 控制内核的系统请求调试功能 3.3 控制核心转储是否将PID附加到核心文件名 3.4 控制TCP同步cookie的使用 3.5 在网桥上禁用netfilter 3.6 控制消息队列的默认最大大小 3.7 调试TCP内核参数 3.8 调试套…