依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
常用注解
默认生成的方法是public的,如果要修改方法修饰符可以设置AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)。
-
@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
-
@Setter:注解在属性上;为属性提供 setting 方法
-
@Getter :注解在属性上;为属性提供 getting 方法
-
@ToString:注解在类上;生成toString()方法,默认情况下,它会按顺序(以逗号分隔)打印你的类名称以及每个字段。可以这样设置不包含哪些字段@ToString(exclude = "id") / @ToString(exclude = {"id","name"})。
-
@EqualsAndHashCode:注解在类上;生成hashCode()和equals()方法,默认情况下,它将使用所有非静态,非transient字段。但可以通过在可选的exclude参数中来排除更多字段。或者,通过在parameter参数中命名它们来准确指定希望使用哪些字段。
-
@Slf4j:注解在类上;根据用户实际使用的日志框架生成log日志对象。
-
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
-
@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
-
@AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
-
@RequiredArgsConstructor:注解在类上;会生成构造方法(可能带参数也可能不带参数),如果带参数,这参数只能是以final修饰的未经初始化的字段,或者是以@NonNull注解的未经初始化的字段
-
@RequiredArgsConstructor(staticName = "of") : 会生成一个of()的静态方法,并把构造方法设置为私有的。
-
@Cleanup: 可以关闭流
-
@Builder : 被注解的类加个构造者模式
-
@Synchronized: 加个同步锁
-
@SneakyThrows : 等同于try/catch 捕获异常
-
@NonNull: 如果给参数加个这个注解 参数为null会抛出空指针异常
-
@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。
-
@SneakyThrows: 这个注解用在方法上,可以将方法中的代码用try-catch语句包裹起来,捕获异常并在catch中用Lombok.sneakyThrow(e)把异常抛出,可以使用@SneakyThrows(Exception.class)的形式指定抛出哪种异常
-
@Synchronized : 这个注解用在类方法或者实例方法上,效果和synchronized关键字相同,区别在于锁对象不同,对于类方法和实例方法,synchronized关键字的锁对象分别是类的class对象和this对象,而@Synchronized得锁对象分别是私有静态final对象LOCK和私有final对象lock,当然,也可以自己指定锁对象