개발공부/JAVA

[JAVA] LOMBOK

jnnjnn 2024. 4. 16. 00:31

Lombok이란 Java 라이브러리로 반복되는 getter, setter, toString 등의 메소드 작성 코드를 줄여주는 기능을 한다.

Model에서 자바빈의 property를 생성하기 위해 getter, setter 메소드를 모두 작성해야 하는 번거로움을 줄여준다.

 

 

@Getter @Setter

 

@Getter는 get 메소드, @setter는 set 메소드를 자동 생성한다

클래스 이름 위에 적용시키면 모든 변수들에 적용이 가능하고, 변수 이름 위에 적용시키면 해당 변수들만 적용된다

@Getter
public class JavaBean{
	@Setter
    private String name;
	private String company;
    private String city;
}

 

@AllArgsConstructor

모든 변수를 사용하는 생성자를 자동완성 시켜주는 어노테이션이다.

이때 기본 생성자는 생성되지 않는다

@AllArgsConstructor
public class JavaBean{
	private String name;
    private String city;
    private int age;
    
    /* 아래의 생성자 자동 생성
    public JavaBean(String name, String city, int age){
    	this.name = name;
        this.city = city;
        this.age = age;
    }
    */
}

 

 

@NoArgsConstructor

어떠한 변수도 사용하지 않는 기본 생성자를 자동완성 시켜주는 어노테이션이다

 

@AllArgsConstructor
public class JavaBean{
	private String name;
    private String city;
    private int age;
    
    /* 기본 생성자 자동 생성
    public JavaBean(){}
    */
}

 

 

@RequiredArgsConstructor

final이거나 @NonNull 어노테이션이 붙은 변수를 활용하는 생성자를 자동완성 시켜주는 어노테이션이다

 

@AllArgsConstructor
public class JavaBean{
	@NonNull
	private String name;
    private String city;
    private final int age;
    
    /* 아래의 생성자 자동 생성
    public JavaBean(String name, int age){
    	this.name = name;
        this.age = age;
    }
    */
}

 

 

@EqualsAndHashCode

equals 함수와 hashCode 함수를 자동으로 생성해준다

@EqualsAndHashCode(of = {"name", "age"})
public class JavaBean{
	private String name;
    private String city;
    private int age;
    
    // name과 age가 같을 경우 같은 객체로 인식
}

 

@ToString

클래스의 변수들을 기반으로 ToString 메소드를 자동으로 완성시켜 준다. 출력을 원하지 않는 변수에 @ToString.Exclude 어노테이션을 붙여주면 출력에서 제외할 수 있다

@ToString
public class JavaBean{
	@ToString.Exclude
	private String name;
    private String city;
    private int age;
}

 

@Data

@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor를 자동완성 시켜준다