Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

SpringBoot集成Lombok

其实之前的教程或多或少的也涉及到了lombok的知识,在编写代码的日常工作的时候,整天的get.set的时候我就郁闷,再就是看同事代码,密密麻麻的一片属性设置叫我看起来飞创不爽,后来我在一次偶然的帮别人调试代码的时候知道lombok,瞬间爱上了,所有项目几乎都是用。

pom.xml

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

Geter Setter

// 正常属性设置读取
public class User {
	
	private Integer Id;
	
	private String username;

	public Integer getId() {
		return Id;
	}

	public void setId(Integer id) {
		Id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}
// 使用Lombok
	@Getter
	@Setter
	private String email;

ToString

// 正常代码	
@Override
	public String toString() {
		return "User{" +
				"Id=" + Id +
				'}';
	}
// 使用Lombok(直接在类上添加,不用再手动了)
@ToString
public class User {

@NoArgsConstructor 创建无构造参数构造器

@RequiredArgsConstructor

//一个class可以有很多属性,但你可能只关心其中的几个字段,那么可以使用@RequiredArgsConstructor。@NonNull将标注这个字段不应为null,初始化的时候会检查是否为空,否则抛出NullPointException。在上面的无参构造函数中被忽略了。那么,对于关注的字段标注@NonNull, @RequiredArgsConstructor则会生成带有这些字段的构造器。
@RequiredArgsConstructor
public class RequiredArgsExample {
    @NonNull private String field;
    private Date date;
    private Integer integer;
    private int i;
    private boolean b;
    private Boolean aBoolean;
}

public class RequiredArgsExample {
    @NonNull
    private String field;
    private Date date;
    private Integer integer;
    private int i;
    private boolean b;
    private Boolean aBoolean;

    public RequiredArgsExample(@NonNull String field) {
        if (field == null) {
            throw new NullPointerException("field");
        } else {
            this.field = field;
        }
    }
}

@AllArgsConstructor 初始化所有字段

@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class ConstructorExample<T> {
    private int x, y;
    @NonNull
    private T description;
}

public class ConstructorExample<T> {
    private int x;
    private int y;
    @NonNull
    private T description;
    protected ConstructorExample(int x, int y, @NonNull T description) {
        if (description == null) {
            throw new NullPointerException("description");
        } else {
            this.x = x;
            this.y = y;
            this.description = description;
        }
    }

@Data 这个才是我工作中常用的东西

@Data是一个集合体。包含Getter,Setter,RequiredArgsConstructor,ToString,EqualsAndHashCode