Lombok介绍和idea安装

介绍

Lombok是一个Java实用工具,通过注解方式,简化Java代码

比如:不需要实现set()、get()方法

官网:
https://projectlombok.org/

使用

  1. 需要在开发工具上安装插件
  2. 在pom.xml中添加依赖
  3. 在代码中添加适当的注解

idea安装lombok

mac系统入口

安装插件

重新启动即可

在pom.xml中添加lombok依赖

<dependencies>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
</dependencies>

使用注解

注解概览

  • @Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法,相当于同时加上以下注解@Setter @Getter,@ToString,@EqualsAndHashCode

  • @NoArgsConstructor:注解在类上; 会生成一个返回类对象的静态工厂方法。

  • @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

  • @Log : 根据不同的注解生成不同类型的log对象,但是实例名称都是log,有六种可选实现类,这里只列出2种

  • @Value: 用在类上,相当于为属性添加final声明,只提供getter方法,而不提供setter方法

  • @Setter、@Getter:注解在类和属性上;为属性提供 setting、getting 方法

  • @Getter(lazy=true) : 可以替代经典的Double Check Lock样板代码

  • @ToString:生成toString方法,默认情况下,会输出类名、所有属性,属性按照顺序输出,以逗号分割。

  • @EqualsAndHashCode:实现equals()方法和hashCode()方法

  • @Builder:构建 建造者模式

  • @NonNull:该注解快速判断是否为空,如果为空,则抛出java.lang.NullPointerException

  • @Synchronized:该注解自动添加到同步机制,有趣的是,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上

  • @RequiredArgsConstructor:注解在类上;为类提供一个部分参的构造方法(使用类中所有带有@NonNull注解的或者带有final修饰的成员变量生成对应的构造方法)

  • @Cleanup:用于确保已分配的资源被释放,如IO的连接关闭

  • @SneakyThrows:抛异常

  • @Accessors: 用于配置getter和setter方法的生成结果

  • val:用在局部变量前面,相当于将变量声明为final

@Data 解释

注解在类上;提供类所有属性的 get 和 set 方法,此外还提供了equals、canEqual、hashCode、toString 方法,相当于同时加上以下注解@Setter,@Getter,@ToString,@EqualsAndHashCode

@Data
public class Person {
    private String name;
    private String address;
    private String city;
    private String state;
    private String zip;
    private Date brithday;
}

@NoArgsConstructor 解释

注解在类上;为类提供一个无参的构造方法

@Data
@NoArgsConstructor
public class Student {
    private long id = new Long(0);
    private String name = " ";
    private String className = " ";
}

@Slf4j 解释

可直接使用log对象

@Slf4j
public class StudentTest {

    public static void main(String[] args) {
        log.info("Here is some INFO");
    }
}

更多解释参见下面链接

https://juejin.im/post/5dde71ddf265da06051d00ab

https://juejin.im/post/5a6eceb8f265da3e467555fe

感谢:
https://juejin.im/post/5a6eceb8f265da3e467555fe


原文出处:/show_1EF5gUlWi5Ev.html