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 {
    @Autowired
    private ITainWarnService iTainWarnService;
    @Autowired
    private SysDictService sysDictService;
    @Autowired
    private 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

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

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

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

相关文章

php连接hdfs初步探索

一、phdfs拓展 结果&#xff1a;暂时舍弃 安装此拓展时&#xff0c;无法make成功&#xff0c;因为缺少hdfs.n文件。 换了其他版本的拓展包&#xff0c;并编译都没有找到此文件。 后搜到官网的相关资料&#xff0c;此hdfs.h的文件路径的地址是$HADOOP_HDFS_HOME/include/hdfs…

探索数据宇宙:深入解析大数据分析与管理技术

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua&#xff0c;在这里我会分享我的知识和经验。&#x…

springboot基于保信息学科平台系统设计与实现论文

基于保密信息学科平台系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于保密信息学科平台系统的开发全过程。通过分析基于保密信息学科平台系统管理的不足&#xff0c;创建了一个计算机管理基于保密信息…

使用 Azure 部署静态网页

Author&#xff1a;AXYZdong 硕士在读 工科男 有一点思考&#xff0c;有一点想法&#xff0c;有一点理性&#xff01; 定个小小目标&#xff0c;努力成为习惯&#xff01;在最美的年华遇见更好的自己&#xff01; CSDNAXYZdong&#xff0c;CSDN首发&#xff0c;AXYZdong原创 唯…

配置MySQL与登录模块

使用技术 MySQL&#xff0c;Mybatis-plus&#xff0c;spring-security&#xff0c;jwt验证&#xff0c;vue 1. 配置Mysql 1.1 下载 MySQL :: Download MySQL Installer 1.2 安装 其他页面全选默认即可 1.3 配置环境变量 将C:\Program Files\MySQL\MySQL Server 8.0\bin…

日志到filebeat-->logstash-->elastic-->kibana

1、日志到filebeat。 cat /etc/filebeat/filebeat.yml filebeat.inputs: - type: syslog format: rfc3164 protocol.udp: host: "0.0.0.0:514" output.logstash: hosts: ["localhost:5044"] 验证方式: tcpdump -i 网卡名称 udp port 514 2、…

three.js 点乘判断平行向量方向异同

效果&#xff1a; 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs"></div><div>判断的前提是两个向量平行<el-button click"judge"…

基于zemax的激光合束过程分析

系统里的透镜包括FAC/SAC及球面聚焦镜都是采用市面上标准的透镜&#xff0c;在典型的光纤耦合14针蝶形封装中&#xff0c;最多需要三个独立的透镜才能提供有效且稳定的耦合。大多数高端激光二极管使用两个交叉的柱面方形微透镜来补偿激光二极管快轴和慢轴的发散角之间的差异。第…

顶易海关数据怎么做获客?功能详解看这里!

顶易海关数据怎么做获客呢&#xff1f;详解看这里&#xff01; 海关数据系统登录&#xff1a;hg.smtso.com/?iEF6DCB 如果对开发国外优质客户感兴趣的话&#xff0c;关注Felicia外贸说&#xff0c;一键开发客户不是问题。 海关数据主要功能&#xff1a; 报关单详情查询&#…

【监督学习之支持向量机(SVM)】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱基本原理支持向量线性SVM与非线性SVM优化问题软间隔与正则化SVM的应用实现 简述概要 了解监督学习-支持向量机&#xff08;SVM&#xff09; 知识图谱 支持向量机&#xff08;Support Vector Machine&…

【前端素材】推荐优质后台管理系统网页Star admin平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理和控制网站、应用程序或系统的管理界面。它通常被设计用来让网站或应用程序的管理员或运营人员管理内容、用户、数据以及其他相关功能。后台管理系统是一种用于管理网站、应用程序或系统的工具&#xff0c;通常由管理员使…

灯塔:CSS笔记

CSS&#xff1a;层叠样式表 所谓层叠 即叠加的意思&#xff0c;表示样式可以一层一层的层叠覆盖 css写在style标签中&#xff0c;style标签一般写在head标签里面&#xff0c;title标签下面 <!DOCTYPE html> <html lang"en"> <head><meta cha…

uniapp的h5端在线预览文件

步骤如下&#xff1a; 1、下载需要准备的工具文件包 2、将其解压到/static/pdf文件夹下,如图&#xff1a; 3、创建在线查看文件的页面&#xff1a; <template><view><web-view :src"path"></web-view></view> </template>&l…

程序员是如何看待“祖传代码”的?

目录 ​编辑 程序员是如何看待“祖传代码”的&#xff1f; 一、什么是“祖传代码”&#xff1f; 二、“祖传代码”的利弊 1. 可以节省开发成本 2. 可能引入安全隐患 3. 可能增加系统的维护难度 三、祖传代对程序员的影响 1. 丰富程序员的技能和知识 2. 提高程序员的创…

腾讯云学生云服务器_学生云主机_学生云数据库_云+校园特惠套餐

2024年腾讯云学生服务器优惠活动「云校园」&#xff0c;学生服务器优惠价格&#xff1a;轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年&#xff0c;轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年&#xff0c;CVM云服务器2核4G配置842.4元一年&…

靶机渗透之My File Server: 1

Name: My File Server: 1Date release: 21 Feb 2020Author: Akanksha Sachin VermaSeries: My File ServerDownload: https://drive.google.com/uc?id1w0grAomPuFaIohBcUwDiI3QIi4fj4kje&exportdownload 对于vulnhub中的靶机&#xff0c;我们都需先下载镜像&#xff0c;然…

java的JDK选择和在win11的安装与配置

一.背景 还是公司安排的师带徒的任务。自己也回头看看。 二.JDK的选择 开发的版本java1.8。所以准备使用JDK8。 1.JDK有谁在给我们提供呢&#xff1f; 我以前知道的是sun、RedHat、Oracle、IBM。 我以前一般都是去sun的网站下载&#xff0c;后来被Oracle收购后去的Oracle…

2024年腾讯云优惠政策_腾讯云TOP10优惠活动

腾讯云服务器多少钱一年&#xff1f;62元一年起&#xff0c;2核2G3M配置&#xff0c;腾讯云2核4G5M轻量应用服务器218元一年、756元3年&#xff0c;4核16G12M服务器32元1个月、312元一年&#xff0c;8核32G22M服务器115元1个月、345元3个月&#xff0c;腾讯云服务器网txyfwq.co…

2024年腾讯云优惠券_代金券_云服务器折扣券免费领取链接

腾讯云优惠代金券领取入口共三个渠道&#xff0c;腾讯云新用户和老用户均可领取8888元代金券&#xff0c;可用于云服务器等产品购买、续费和升级使用&#xff0c;阿腾云atengyun.com整理腾讯云优惠券&#xff08;代金券&#xff09;领取入口、代金券查询、优惠券兑换码使用方法…

【中国 Elixir 开发者值得关注的 Elixir 相关动态发布网站】ElixirStatus

Elixir 是一个基于Erlang 虚拟机的函数式、面向并行的通用编程语言。如果你是一个 Elixir 开发者&#xff0c;想关注 Elixir 相关的项目动态和博客文章&#xff0c;https://elixirstatus.com/ 是一个不错的选择&#xff0c;基本每天 Elixir 相关项目开发者提交动态到该网站。