介绍
Lombok是一个基于java的开发包,能通过注解的方式简化java代码,自动生成javabean的getter和setter方法、构造函数等,提高开发人员的开发效率。
idea配置lombok
在setting → Plugins中搜索Lombok关键字,找到Lombok插件并安装,安装成功后重启idea。
maven项目在pom.xml中添加依赖,非maven项目可以下载jar包并添加到Libraries中即可。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
使用lombok的Data注解定义一个javabean,变得简洁很多了。
import lombok.*;
import java.io.Serializable;
import java.util.*;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TemplateMessageDto implements Serializable
{
/**
* 模板
*
* @see WxTemplate
*/
protected String template;
/**
* 接收消息的微信用户openId
*/
protected String openId;
/**
* 消息打开的url
*/
protected String url;
@Builder.Default
protected Map<String, String> data = new HashMap<>();
}
上面代码中使用了Builder注解,表示为javabean生成一个构造器。
可以像下面这样子使用
TemplateMessageDto message = TemplateMessageDto.builder().openId("").url("").template("").build();
提示There is no default constructor available in xxx
继承了使用lombok的data注解标识的javabean,在定义当前类的构造方法是提示There is no default constructor available in xxx。
public class WxTemplateMessage extends TemplateMessageDto
{
public WxTemplateMessage()
{
}
}
添加NoArgsConstructor注解即可。
无法将类TemplateMessageDto中的构造器应用到给定类型
添加AllArgsConstructor注解就可以解决了。
idea下编译提示找不到符号
项目添加了lombok的依赖,编译时提示找不到符号。
在setting → Build,Execution,Deployment → Compiler → Annotation Processors中勾选上Enable annotation processing
Jenkins添加lombok依赖
项目通过Jenkins自动部署,项目中有依赖到lombok。需要在pom.xml中添加lombok依赖。否则会报error: cannot find symbol的错误。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
同时还需要在编译插件中添加AnnonationProcessor相关的配置
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessors>
<annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor
</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
</plugins>
</build>