• 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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    @ApiModel

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

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

    @ApiModelProperty

    @ApiModelProperty(value = "主键id")
    
    • 1

    在这里插入图片描述

    @TableId

        @TableId(value = "id", type = IdType.AUTO)
        private Long id;
    
    • 1
    • 2

    @TableName

    @TableName("user")
    
    • 1

    @NotBlank

        @ApiModelProperty(value = "用户名")
        @NotBlank(message = "用户名不能为空")
        private String username;
    
    • 1
    • 2
    • 3

    @JsonFormat

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

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

    @TableField

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

    @TableLogic

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

    Dao层

    @Repository

    @Mapper

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

    @Param

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

    Service层

    @Service

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

    @Autowired

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

    @Override

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

    @Transactional

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

    Controller层

    @RestController

    @RestController = @Controller + @ResponseBody

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

    @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);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

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

    RESTFUL URL

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

    @GetMapping(“路径”)

    @PostMapping(“路径”)

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

    @PutMapping(“路径”)

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

    @DeleteMapping(“路径”)

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

    @RequestParam

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

    @PathVariable

        @GetMapping("/info/{id}")
        public R info(@PathVariable("id") Long id){
            User user = iUserService.getById(id);
            return R.ok().put("user",user);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    @SysLog

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

    @ResponseBody

    非三层架构层

    @Component

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

    @EnableScheduling

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

    @Scheduled

        @Scheduled(fixedRate = 5000)  // 每隔5秒执行一次
        public void doTask() {
    
    • 1
    • 2
        @Scheduled(cron = "5 * * * * ? ")//每五秒执行一次
        public void doTask(){
    
    • 1
    • 2

    二者皆可

    @SpringBootApplication

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

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

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

  • 相关阅读:
    10.30-11.3|浙大报考点硕士研究生2023年网上确认系统操作流程
    Docker方式创建MySQL8的MGR集群
    数据结构:二叉树的链式结构
    粒子群算法求解电力系统环境经济调度+微电网调度(风、光、电动车、柴油机、主网)(Python代码实现)
    某银行开发一个信用卡管理系统CCMS
    OKR助理源代码说明
    Serverless Devs 重大更新,基于 Serverless 架构的 CI/CD 框架:Serverless-cd
    【linux】详解TOP命令
    【5G NR】RRC连接释放
    LeetCode每日一题(2256. Minimum Average Difference)
  • 原文地址:https://blog.csdn.net/qq_52879387/article/details/136396072