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/