Lombok是一个能够让编程人员没必要硬编set、get、构造以及hash和toString方法的插件,在编译时会自动根据定义的属性生成包含这些相关方法的class文件。编程
经常使用的注解以下:maven
@AllArgsConstructor
做用于类,生成全部属性的代参构造函数ide
@NoArgsConstructor函数
做用于类,生成无参构造函数ui
@toString
做用于类,生成toString方法this
@EqualsAndHashCode
做用于类,生成equals和hashcode方法idea
@Setter,@Getter.net
做用于类,为全部属性生成set和get方法,做用于属性,为该属性生成set和get方法;插件
下面这三个注解比较厉害了,终极大boss:3d
@Data
做用于类,能够生成上面除了@AllArgsConstructor之外全部的方法。
若想生成全部参数构造,需配合@AllArgsConstructor使用,可是无参构造就会失效,因此须要自定义或搭配@NoArgsConstructor一块儿使用。
须要说明的是:
若自定义了set或get方法,@Setter,@Getter和@Data三个注解使用时是不会覆盖生成set或get方法的
@Builder
用于类,生成一个当前类的builder构建器、builder方法和全参构造函数。构建器中的全部方法为当前类的属性名命名,功能涵盖set方法功能,但同时返回构建器对象,还有一个build方法,最终调用生成当前类对象。
Builder方法用于生成构造器对象。
须要注意:
使用该注解会同时生成全参构造函数,因此如需无参构造,须要自定义或配合@NoArgsConstructor一块儿使用
@Accessors(chain = true)
这是一个还在实验阶段或公测阶段的一个功能注解。须要配合@data或@set、@get使用。
可包含三个参数:
fluent:布尔值,默认false,true时生成的set和get方法都会去掉set个get前缀,该值为true时,chain属性默认为true
chain:布尔值,默认false,只有fluent为true时默认true。true时全部set方法返回值有void变成当前对象;
Prefix:前缀属性(不经常使用,没细研究)
下来看看实际如何操做
首先是idea安装:
设置激活安装的插件:
添加maven依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> </dependency>
@data使用示例
在右侧structure选项能够看到结果,也能够Ctrl+F12查看结果以下:
@builder使用示例:
Ctrl+F12结果以下:
代码使用:
@Accessors使用示例:
代码:
是否是跟@builder用法有点类似……
日志相关的注解:
@Slf4j(至关于:org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(this.getClass() );)
实例名就是“log”,使用以下:
log.warn(e.getMessage());
log.error(e.getMessage(), e);
还有其余日志相关注解,如:@Log4j / @Log4j2 / @CommonsLog ……
至此,lombok辉煌的一辈子就概述结束了,哈哈哈……