关于Lombok,想了解不妨看看呗

Date:2019 3.22 15:46 星期五

1.什么是Lombok? 它用来干啥?

Lombok是一种Java实用工具,用于消除Java的冗【rong(第三声)】长。

也就是可以减少entity类中一些get/set/toString方法的编写,IDEA工具虽然可以自动生成get/set/toString方法,但是使用Lombok可以让咱们的代码更加简洁。

2.如何安装Lombok?

(eclipse、myeclipse中安装)

  第一步:将lombok.jar复制到eclipse.ini/myeclipse.ini 所在的目录下

  第二步:打开eclipse.ini/myeclipse.ini,在最后面插入代码并保存

      代码:-javaagent:lombok.jar

  第三步:重启eclipse/myeclipse

  第四部:project ->clean 清理项目

(idea中安装)

  第一步:添加插件 File->setting->plugins

  第二步:点击按钮【install JetBrains plugin...】

  第三步:在弹出的窗口中,搜索lombok,然后在搜索到的lombok上右击安装即可

  引入依赖的代码(即添加lombok的编译支持):

  <dependency>

    <groupId>org.projectlombok</groupId>

    <artifactId>lombok</artifactId>

    <version>1.16.18</version>

    <scope>provided</scope>

 </dependency>

3.如何使用?

   在实体类上引入相关的注解即可

4.有哪些注解?以及注解的详解

@Data:注解到实体类上;提供实体类所有属性的get/set方法,此外还提供了equals、canEqual、hashCode、toString方法

@Setter:注解在属性上;为单个属性提供 set 方法; 注解在类上,为该类所有的属性提供 set 方法, 都提供默认构造方法

@Getter:注解在属性上;为单个属性提供 get 方法; 注解在类上,为该类所有的属性提供 get 方法,都提供默认构造方法

@Log4j:注解在类上;为类提供一个 属性名为 log 的 log4j 日志对象,提供默认构造方法

@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法,加了这个注解后,类中不提供默认构造方法了

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

@EqualsAndHashCode:注解在类上, 可以生成 equals、canEqual、hashCode 方法

@NonNull:注解在属性上,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常,也会有一个默认的无参构造方法

@Cleanup:这个注解用在变量前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的 close() 方法,如果该资源有其它关闭方法,可使用 @Cleanup(“methodName”) 来指定要调用的方法,也会生成默认的构造方法

@ToString:这个注解用在类上,可以生成所有参数的 toString 方法,还会生成默认的构造方法

@RequiredArgsConstructor:这个注解用在类上,使用类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法

@Value:这个注解用在类上,会生成含所有参数的构造方法,get 方法,此外还提供了equals、hashCode、toString 方法

@SneakyThrows:这个注解用在方法上,可以将方法中的代码用 try-catch 语句包裹起来,捕获异常并在 catch 中用 Lombok.sneakyThrow(e) 把异常抛出,可以使用 @SneakyThrows(Exception.class) 的形式指定抛出哪种异常,也会生成默认的构造方法

@Synchronized:这个注解用在类方法或者实例方法上,效果和 synchronized 关键字相同,区别在于锁对象不同,对于类方法和实例方法,synchronized 关键字的锁对象分别是类的 class 对象和 this 对象,而 @Synchronized 的锁对象分别是 私有静态 final 对象 lock 和 私有 final 对象 lock,当然,也可以自己指定锁对象,此外也提供默认的构造方法

随笔相关信息采用来自以下链接:http://www.54tianzhisheng.cn/2018/01/07/lombok/

猜你喜欢

转载自www.cnblogs.com/gengzy/p/10577901.html
今日推荐