3,lombok插件介绍
Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。(百度百科)
用大白话来讲,Lombok可以通过几个注释在编译的时候为我们的JavaBean动态的生成get,set,tostring,无参构造方法,全参数构造方法,基于builder的创建方式。
lombok具体使用步骤:
1,引入lombok对应的maven坐标:
(1),首先在父工程中引入坐标:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
(2),在子工程中具体引入:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2,idea安装对应的lombok插件:
刷新一下
3,我们编写一个javaBean:
4,lombok自动生成get方法和set的注解:
package com.vgxit.lombok.ktdm.po;
import lombok.Getter;
import lombok.Setter;
/**
* 用户PO
*/
@Getter
@Setter
public class User {
/**
* 自增Id
*/
private Integer id;
/**
* 用户姓名
*/
private String name;
/**
* 用户性别,1表示男,2表示女
*/
private Short gender;
/**
* 用户年龄
*/
private Integer age;
/**
* 昵称
*/
private String nickName;
}
4,lombok自动生成toString方法注解@ToString
package com.lombok.Test;
import com.lombok.po.User;
public class LombokTest {
public static void main(String[] args) {
User user = new User();
user.setName("仙女");
user.setAge(18);
user.setGender((short)2);
user.setId(1);
user.setNickName("xiannv");
System.out.println(user);
}
}
5,lombok生成全参数构造方法的注解:@AllArgsConstructor
package com.lombok.po;
import lombok.*;
/**
* 用户:po
*/
@Getter//生成get方法
@Setter//生成SET方法
@ToString//自动生成toString方法注解
@AllArgsConstructor//生成全参数构造方法的注解
public class User {
/**
* 自增Id
*/
private Integer id;
/**
* 用户姓名
*/
private String name;
/**
* 用户性别,1表示男,2表示女
*/
private Short gender;
/**
* 用户年龄
*/
private Integer age;
/**
* 昵称
*/
private String nickName;
}
package com.lombok.Test;
import com.lombok.po.User;
public class LombokTest {
public static void main(String[] args) {
User user = new User(1,"仙女",(short)2,18,"xiannv");
System.out.println(user);
}
}
6,lombok生成无参构造方法的注解:@NoArgsConstructor
package com.lombok.Test;
import com.lombok.po.User;
public class LombokTest {
public static void main(String[] args) {
User user = new User();
System.out.println(user);
}
}
7,一键生成get,set,tostring,hashCode,canEqual,equals,无参构造方法的注解:@Data
8,基于变种的建造者模式的注解:@Builder
User user = User.builder()
.id(1)
.name("仙女")
.age(30)
.gender((short) 2)
.nickName("tongtong")
.build();
System.out.println(user.getName());
System.out.println(user);
9,如果我们在类里面自己编写了相同的代码,那么会覆盖lombok自动生成的代码