• Spring Boot 依赖之 lombok的@Data注解


    Spring Boot 依赖之 lombok的@Data注解

    一、创建 Spring Boot 项目

    1. 启动 IntelliJ IDEA,点击 File -> New -> Project...
    2. 在新项目对话框中,选择 Spring Initializr,点击 Next
    3. 配置 Spring Initializr 项目元数据,如 Group=com.dependencies 和 Artifact=lombok
    4. 选择 Spring Boot 版本,点击 Next
    5. 在依赖选项中选择以下依赖:
      • lombok
    6. 点击 Next -> Finish

    编译之后的代码

    1、代码编译之后,字节码文件decompile反编译之后的内容。其实这也就是不加注解需要手动写的,很多setter getter太多太繁琐。

    package com.javastudy.maven.pojo;
    
    public class User {
      private Integer id;
      
      private String username;
      
      private String password;
      
      private String email;
      
      public void setId(Integer id) {
        this.id = id;
      }
      
      public void setUsername(String username) {
        this.username = username;
      }
      
      public void setPassword(String password) {
        this.password = password;
      }
      
      public void setEmail(String email) {
        this.email = email;
      }
      
      public boolean equals(Object o) {
        if (o == this)
          return true; 
        if (!(o instanceof User))
          return false; 
        User other = (User)o;
        if (!other.canEqual(this))
          return false; 
        Object this$id = getId(), other$id = other.getId();
        if ((this$id == null) ? (other$id != null) : !this$id.equals(other$id))
          return false; 
        Object this$username = getUsername(), other$username = other.getUsername();
        if ((this$username == null) ? (other$username != null) : !this$username.equals(other$username))
          return false; 
        Object this$password = getPassword(), other$password = other.getPassword();
        if ((this$password == null) ? (other$password != null) : !this$password.equals(other$password))
          return false; 
        Object this$email = getEmail(), other$email = other.getEmail();
        return !((this$email == null) ? (other$email != null) : !this$email.equals(other$email));
      }
      
      protected boolean canEqual(Object other) {
        return other instanceof User;
      }
      
      public int hashCode() {
        int PRIME = 59;
        result = 1;
        Object $id = getId();
        result = result * 59 + (($id == null) ? 43 : $id.hashCode());
        Object $username = getUsername();
        result = result * 59 + (($username == null) ? 43 : $username.hashCode());
        Object $password = getPassword();
        result = result * 59 + (($password == null) ? 43 : $password.hashCode());
        Object $email = getEmail();
        return result * 59 + (($email == null) ? 43 : $email.hashCode());
      }
      
      public String toString() {
        return "User(id=" + getId() + ", username=" + getUsername() + ", password=" + getPassword() + ", email=" + getEmail() + ")";
      }
      
      public User(Integer id, String username, String password, String email) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.email = email;
      }
      
      public User() {}
      
      public Integer getId() {
        return this.id;
      }
      
      public String getUsername() {
        return this.username;
      }
      
      public String getPassword() {
        return this.password;
      }
      
      public String getEmail() {
        return this.email;
      }
    }
    
    

    二、Java源代码

    java源文件,使用@Data注解之后的代码:

    package com.javastudy.maven.pojo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    /**
     * @author zhizhou   2024/6/27 17:37
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
    
        private Integer id;
        
        private String username;
        
        private String password;
        
        private String email; 
    }
    

    三、引入lombok

    引入lombok
    要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。

    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
        <version>1.18.4version>
        <scope>providedscope>
    dependency>
    

    在编译器中添加插件
    这里以IDEA为例,在setting的plugin里搜索 lombok plugin,安装插件,安装完之后就可以在IDEA的Structure结构中看到@Data注解的效果。

    在这里插入图片描述

    安装完之后就可以在IDEA的Structure结构中看到@Data注解的效果。

    在这里插入图片描述
    源码地址:学习可供参考 码云

    总结:

    lombok 注解 @Data 一个组合注解,包含 @Getter、@Setter、@ToString、@EqualsAndHashCode 和 @RequiredArgsConstructor等。通过创建各种实体类并使用 Lombok 注解来减少样板代码,提高开发效率。降本增效这确实是个好方法,特别是一些相对比较老的项目,重构优化的空间会很大。

  • 相关阅读:
    Nginx正则表达与Rewrite跳转
    23种设计模式详解
    基于Matlab利用移动目标指示雷达抑制地面杂波(附源码)
    AI搞钱——工具篇之视频、音频转文字
    排序不等式算法
    【Power Automate】Power Automate中使用SharePoint caml query for GEQ datetime
    Zabbix监控系统详解2:基于Proxy分布式实现Web应用监控及Zabbix 高可用集群的搭建
    面试官:说一下 px、em、rem、vw/vh?em和rem的区别?
    ChinaSkills技能大赛网络系统管理Debian模块(样题一)||SERVER02 TASK配置
    AOJ 0531 坐标离散化
  • 原文地址:https://blog.csdn.net/ahauedu/article/details/140968142