lombok java中的使用
lombok可以通过注解来帮助我们简化和消除一些重复的代码,比如get set方法,toString方法等;
以idea为例,打开IDEA,选择 file -> settings -> plugins;
在搜索框中输入Lombok plugin,点击install;重启IDEA,安装完成。
在maven项目中 在pom文件中引入依赖
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <optional>true</optional>
- </dependency>
@Data,简化实体类get set方法、toString方法
@Slf4j,日志
用了这个注解 省去了在类里加如下代码
@Accessors(chain = true) set方法返回值 this
使调用的返回方法是链式调用,如下 返回的都是User类型 如果不加此注解,.set返回的都是void类型,不能链式调用
@Builder,建造者模式床架你对象,设计模式之一,一般用于创建复杂对象,spring、mybatis框架源码中所有以XXXXBuilder的命名格式的都是使用的建造者模式
通过builder创建对象
@AllArgsConstructor 添加全参构造函数
@NoArgsConstructor 添加无参构造函数
** @NonNull**
给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException)。
** @Getter/@Setter**
使用在成员变量或者类上,为特定成员变量/类中所有变量生成Getter/Setter方法。
@ToString
用在类上,可以自动覆写toString方法,当然还可以加其他参数,例如@ToString(exclude=”id”)排除id属性,或者@ToString(callSuper=true, includeFieldNames=true)调用父类的toString方法,包含所有属性。
@EqualsAndHashCode
自动生成hashCode() 和 equals()方法。
@Value
用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法,具体示例可以参考@Data部分
@Log
lombok可以快速生成多种常用日志实例,包括Commonslog、log、log4j、slf4j等等,具体的使用可以依照需求灵活选择。
** @Cleanup**
这个注解用在变量前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的close()方法,如果该资源有其它关闭方法,可使用@Cleanup(“methodName”)来指定要调用的方法.
示例:
@Cleanup不仅减少了代码编写,同时也避免了可能的泄露问题,CleanUpDemo的lombok改造效果如下。
本文部分参考: