lombok做用
消除模板代码
getter、setter、构造器、toString()、equals()
便捷的生成比较复杂的代码,例如一个POJO要转化成构建器模式的形式,只须要一个注解。spring
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency>
@Data public class User { private String name; private int age; }
@Test
public void testUser(){
User user = new User(); user.setName("AnyCode"); user.setAge(20); System.err.println(user.toString()); }
@NonNull : 让你不在担心而且爱上NullPointerException
@CleanUp : 自动资源管理:不用再在finally中添加资源的close方法
@Setter/@Getter : 自动生成set和get方法
@ToString : 自动生成toString方法
@EqualsAndHashcode : 从对象的字段中生成hashCode和equals的实现
@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor
自动生成构造方法
@Data : 自动生成set/get方法,toString方法,equals方法,hashCode方法,不带参数的构造方法
@Value : 用于注解final类
@Builder : 产生复杂的构建器api类
@SneakyThrows : 异常处理(谨慎使用)
@Synchronized : 同步方法安全的转化
@Getter(lazy=true) :
@Log : 支持各类logger对象,使用时用对应的注解,如:@Log4jdocker
@Slf4j:同上api
注意:lombok 的注解不能被继承。安全
若是想让lombok生效咱们还须要针对idea工具进行插件的安装,下面咱们按照顺序打开Idea配置
File > Settings > Plugins > Browse repositories... > 输入lombok,插件就会被自动检索出来,以下图所示:
个人工具已经安装了该插件,全部在右侧是没有任何按钮的,若是你的工具没有安装该插件,
右侧会有一个绿色的按钮,按钮的内容则是Install,点击安装后重启Idea就能够了。springboot
package com.jxlg.lance.springbootcorestudy.lombok; import lombok.*; /** * @author lance(ZYH) * @function 测试其余注解 * @date 2018-03-22 12:27 */ @EqualsAndHashCode @ToString @AllArgsConstructor public class Student { @Setter @Getter private String stuName; @Setter @Getter private Integer stuAge; @Setter @Getter private String stuClass; @Setter @Getter private Integer stuNumber; }
@EqualsAndHashCode @ToString(of = {"stuName","stuAge"}) @AllArgsConstructor public class Student { @Setter @Getter private String stuName; @Setter @Getter private Integer stuAge; @Setter @Getter private String stuClass; @Setter @Getter private Integer stuNumber; }
@EqualsAndHashCode @ToString @AllArgsConstructor @Setter @Getter public class Student { private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber; }
@EqualsAndHashCode @ToString @AllArgsConstructor @Setter @Getter @Builder public class Student { private String stuName; private Integer stuAge; private String stuClass; private Integer stuNumber; } 测试类: package com.jxlg.lance.springbootcorestudy.lombok; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static org.junit.Assert.*; @RunWith(JUnit4.class) public class StudentTest { @Test public void test(){ Student student = Student.builder() .stuName("张三") .stuAge(12) .stuClass("高三") .stuNumber(12222) .build(); System.out.println(student); } } 结果: Student(stuName=张三, stuAge=12, stuClass=高三, stuNumber=12222)
@Data @Builder public class User { private String name; private Integer age