美文网首页
Lombok学习

Lombok学习

作者: 寇寇寇先森 | 来源:发表于2019-10-20 17:10 被阅读0次

一:简单介绍

1.Lombok是什么

Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques等常规方法,同时可以自动化日志变量。官网链接
简而言之:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。

2.Lombok使用

使用Lombok需要的开发环境Java+Maven+IntelliJ IDEA或者Eclipse(安装Lombok Plugin)
1.打开IDEA的setting
2.找到plugins,选择Browse repositories
3.搜索lombok ,点击安装 ,安装完成重启IDEA
4.在项目中添加Lombok依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    <scope>provided</scope>
</dependency>

5.在对应的类或者方法上使用对应注解

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class WC {
    /**
     * word
     */
    public String word;

    /**
     * 出现的次数
     */
    public long count;
}

二:常用注解讲解

@Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter 使用方法同上,区别在于生成的是getter方法。
@ToString 注解在类,添加toString方法。
@EqualsAndHashCode 注解在类,生成hashCode和equals方法。
@NoArgsConstructor 注解在类,生成无参的构造方法。
@RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
@Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@Slf4j 注解在类,生成log变量,严格意义来说是常量,不用自己定义log常量,减少代码数量。
private static final Logger log = LoggerFactory.getLogger(UserController.class);
@Value也是整合包,但是他会把所有的变量都设成 final 的,其他的就跟 @Data 一样,等于同时加了以下注解

三:重点注解学习

1.@Builder 实战使用

如果对建造者设计模式不太清楚的,可以先了解一下:建造者模式

@Builder注解为你的类生成相对略微复杂的构建器API。@Builder可以让你以下面显示的那样调用你的代码,来初始化你的实例对象:

Person.builder()
    .name("Adam Savage")
    .city("San Francisco")
    .job("Mythbusters")
    .job("Unchained Reaction")
    .build();

@Builder可以放在类,构造函数或方法上。 虽然放在类上和放在构造函数上这两种模式是最常见的用例,但@Builder最容易用放在方法的用例来解释
使用@Builder注释的方法可以帮助我们完成一下一些事情:

  1. 一个名为FooBuilder的内部静态类,并具有和实体类形同的属性(称为构建器)。
  2. 在构建器中:对于目标类中的所有的属性和未初始化的final字段,都会在构建器中创建对应属性;
  3. 在构建器中:创建一个无参的default构造函数。
  4. 在构建器中:对于实体类中的每个参数,都会对应创建类似于“setter”的方法,只不多方法名与该参数名相同。 并且返回值是构建器本身(便于链式调用),如上例所示。
  5. 在构建器中:一个build()方法,调用此方法,就会根据设置的值进行创建实体对象。
  6. 在构建器中:同时也会生成一个toString()方法。
  7. 在实体类中:会创建一个builder()方法,它的目的是用来创建构建器。
@Builder
public class User {
    private String username;
    private String password;
}

// 编译后:
public class User {
    private String username;
    private String password;
    User(String username, String password) {
        this.username = username; this.password = password;
    }
    public static User.UserBuilder builder() {
        return new User.UserBuilder();
    }

    public static class UserBuilder {
        private String username;
        private String password;
        UserBuilder() {}

        public User.UserBuilder username(String username) {
            this.username = username;
            return this;
        }
        public User.UserBuilder password(String password) {
            this.password = password;
            return this;
        }
        public User build() {
            return new User(this.username, this.password);
        }
        public String toString() {
            return "User.UserBuilder(username=" + this.username + ", password=" + this.password + ")";
        }
    }
}

相关文章

  • 如何学习lombok

    如何学习lombok lombok为什么出现,解决了什么问题? 在项目中使用Lombok可以减少很多重复代码的书写...

  • SpringBoot学习笔记

    如何学习Lombock 为什么要使用Lombok? 使⽤了Lombok相关注解后(@Setter,@Getter,...

  • 学习lombok

    # 学习lombok ## 什么是lombok? - 就是通过@Data注解的方式省去了我们平时开发定义JavaB...

  • lombok 学习

    lombok 作用通过 注解方式 隐式生成setter和getter方法 在 lombok jar包的位置 打开...

  • Lombok学习

    一:简单介绍 1.Lombok是什么 Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。...

  • 如何在IntelliJ IDEA里使用Lombok、Thymel

    一. 如何学习Lombok 1. 为什么要使用Lombok? ● 能通过@Data等注解的形式自动生成构造器、ge...

  • 在IntelliJ IDEA里使用Lombok、Thymelea

    一. 如何学习Lombok 1. 为什么要使用Lombok? ● 能通过@Data等注解的形式自动生成构造器、ge...

  • Lombok学习笔记

    Lombok学习笔记 1. 介绍 作用:简化代码编写,提高开发效率 使用lombok之前先要在IDE上安装lomb...

  • 如何学习Lombok

    ## 1.为什么要使用Lombok * 使得代码整洁许多,大部分entity的get和set方法都是固定不变的,我...

  • 如何学习LomBok

    为什么会出现?解决了什么问题? 我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的...

网友评论

      本文标题:Lombok学习

      本文链接:https://www.haomeiwen.com/subject/jwoimctx.html