개발공부/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를 자동완성 시켜준다