前言:
Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。
Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。
Lombok的使用跟引用jar包一样,可以在官网(https://projectlombok.org/download)下载jar包,也可以使用maven添加依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
0、@Data:@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
1、@Value注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法
2、@getter:在JavaBean中使用,注解会生成对应的getter方法
3、@setter:在JavaBean中使用,注解会生成对应的setter方法
4、@NoArgsConstructor:在JavaBean中使用,注解会生成对应的无参构造方法
5、@AllArgsConstructor:在JavaBean中使用,注解会生成对应的有参构造方法
@RequiredArgsConstructor :生成private构造方法,使用staticName选项生成指定名称的static方法。
6、@ToString:在JavaBean中使用,注解会自动重写对应的toStirng方法
@ToString(exclude={“column1”,“column2”}):排除多个column列所对应的元素
@ToString(of={“column1”,“column2”}):只生成包含多个column列所对应的元素
7、@EqualsAndHashCode:在JavaBean中使用,注解会自动重写对应的equals方法和hashCode方法
8、@Slf4j:在需要打印日志的类中使用,项目中使用slf4j日志框架
9、@Log4j:在需要打印日志的类中使用,项目中使用log4j日志框架
10、@NonNull:注解快速判断是否为空,为空抛出java.lang.NullPointerException
11、@Synchronized:注解自动添加到同步机制,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上
12、@Cleanup:注解用于确保已分配的资源被释放(IO的连接关闭)
13、@Accessors(chain = true):链式风格,在调用set方法时,返回这个类的实例对象