Lombok插件的安装
Lombok是一个可以通过简单的注解简化消除臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法,从而达到美化代码、提高编码效率、代码更简洁、消除冗长代码的作用。
Lombok官坊网址:https://projectlombok.org/
Lombok下载网址:https://projectlombok.org/download
Lombok项目网址:https://github.com/rzwitserloot/lombok
Lombok优点:美化代码、提高编码效率、使代码更简洁、消除冗长代码
lombok常用的注解:
@Data 注解在类上使用,可以省略所有的get set equal toString等方法.
@Getter 注解在属性上使用,可以省略所有get方法.
@Setter 注解在属性上使用,可以省略所有的set方法.
@NoArgsConstructor 注解在类上使用,可以提供无参构造.
@AllArgsConstructor 注解在类上使用,可以提供全参构造.
lombok插件的安装:
lombok插件安装非常简单,Eclipse、IDEA都支持lombok插件,在IDEA下 File—setting—plugin 搜索lombok插件,点击安装即可。
Eclipse下安装需要:
1.现下载好的lombok插件放置到Eclipse安装目录下,关闭Eclipse编辑器,然后执行命令:
2.安装完成以后,在Ecliipse安装路径下的ecliipse.ini中会有lombok插件的按照路径,在重新打开Ecliipse编辑器。
3.在项目中引入lombok插件
打开pom.xml文件,增加lombok插件
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
4.Lombok的使用
1).@Data注解在类使用
@Data注解在类上,会自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法,代码如下:
package main.blog.entity; import java.util.Date; import javax.validation.constraints.Min; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import javax.validation.constraints.Past; import org.springframework.format.annotation.DateTimeFormat; import lombok.Data; @Data public class Article { private int age = 10; @Setter(AccessLevel.PROTECTED) //设置访问权限Protected private String name; public String toString() { return String.format("%s (age: %d)", name, age); } }
2).@Getter/@Setter在类属性上使用
使用@Data简单粗暴,可以使用@Getter/@Setter注解,此注解在属性上,可以为相应的属性自动生成Getter/Setter方法,代码如下:
import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; public class Article { @Getter @Setter private int age = 10; @Getter @Setter(AccessLevel.PROTECTED) //设置访问权限Protected private String name; @Override public String toString() { return String.format("%s (age: %d)", name, age); } }
3).Lombok注解更多使用方法
@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter :注解在属性上;为属性提供 setting 方法
@Setter :注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
@Cleanup : 可以关闭流
@Builder : 被注解的类加个构造者模式
@Synchronized : 加个同步锁
@SneakyThrows : 等同于try/catch 捕获异常
@NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。
官方文档: https://projectlombok.org/features/all