栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

lombok工具介绍

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

lombok工具介绍

1.使用lombok的原因

当一个实体类里的成员属性太多时(特别是开发大型项目时),手动生成get、set方法会产生极大的不方面,使用lombok可以是我们自动的去生成这些方法,极大的提升开发效率。另外我们在自己写小demo时,可能会改变一些实体类的成员属性,紧接着我们又要修对应set、get中的参数会显得非常麻烦。

lombok快速开发,通过一些注解,获得一些方法(get、set、toString等)

2.快速开始 1.添加依赖

            org.projectlombok
            lombok
            true

2.注解的使用
  • @Date 用在实体类上:自动为该类的成员变量加上get、set、toString、hascode、equals方法
    下面进行图文展示:
    在java中进行编写:
@Data
public class Student {

    private Integer id;
    private String name;
    private int age;
    
}

通过原理可知:在我们编码过程中,我们只用该注解就应该已经把对应的大多数方法写进文件了,我们可以通过target目录查看:
我们可以通过target查找到.class文件

public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;

    public String toString() {
        return "User{id=" + this.id + ", name='" + this.name + ''' + ", age=" + this.age + ", email='" + this.email + ''' + '}';
    }

    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return this.age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getEmail() {
        return this.email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public User(Long id, String name, Integer age, String email) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.email = email;
    }

    public User() {
    }
}

可知java文件编码成.class文件后已经把我们相关的代码自动加入到代码中了

3.lombok原理
  • java文件先通过jvm生成语法树,再通过jvm将java编译成.class文件。
  • 我们进入@Data源码中进行查看:
    @Target({ElementType.TYPE})
    @Retention(RetentionPolicy.SOURCE)
    public @interface Data {
    String staticConstructor() default “”;
    }
    我们可以知道source表示编译源码阶段生效:
    原理:在java文件生成语法树后,@Data开始生效,对语法树进行对应的修改,然后语法树在通过jvm编译成字节码文件。
4.更多的注解

@Data 从上面可以知道该注解是加上所有的方法(除了构造方法,系统默认·有无参构造)

@Setter 为所有属性加上set方法
@Getter 为所有属性加上get方法
@ToString
@EqulasAndHash
以上4个都不怎么常用,只需要用@Data就行了

@AllArgsConstructor 添加有参构造
@NoArgsConstructor 添加无参构造
以上两个通常配套使用(只能生成全参和无参,若要生成个别参数的,就只能进行手动添加了)

@Accesssors 重要 作用开启set方法的链式法则:参数chain默认true开启链式法则,改为false可以关闭

User user=user.setAge(12).setName("haha").setId(3);

即set返回的不是void而是实体对象了

@Slf4j 自动在类的成员变量加上成员

private static final Logger log = LoggerFactory.getLogger(Student.class);

这样我们就可以在该类中直接只用log的相关方法而不需要去定义了

5.总结

以上所有的注解都上加在类上的
以上所有方法都是在编译时期生效的

当然执行lombok不要忘了先在idea插件库中下载lombok插件才行,直接在idea的plugin市场搜索lombok即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号