ENN
Lombok의 기능 알아보기 본문
Lombok은 Java에서 매우 많이 쓰이는 라이브러리이다. 특히 DTO를 사용한다면 용이하게 사용할 수 있는 라이브러리이다. Lombok의 기능을 하나씩 알아보자.
@Getter와 @Setter
계층간 데이터 전달을 위해 DTO를 사용하다보면 DTO 안에 변수가 많아질수록 getter와 setter가 많이 필요하다. 변수 하나당 get,set 하나씩 설정하다보니 변수가 많아지면 보기에도 지저분하다.
하지만 Lombok을 사용한다면 class 앞에 @Getter @Setter만 붙여주면 된다. 따로 get, set을 선언할 필요도 없고 DTO 내부의 변수에 접근하려면 get변수명() 또는 set변수명()의 형태로 호출하면 된다
(주의 : 변수명 앞글자는 대문자로 바꿔줘야한다.)
예시 코드는 다음과 같다.
@Getter
@Setter
public class ChatDTO {
private String userid;
private int clgid;
private String message;
}
@AllArgsConstructor
모든 변수를 파라미터로 받는 생성자를 자동으로 만들어준다. Lombok이 있다면 생성자 생성도 간편해진다. 더 설명할 것도 없는, 이름 그대로의 기능이다.
앞서 설명한 DTO 코드에 @AllArgsConstructor를 사용하면 다음과 같은 생성자를 만든 것과 같다.
@Getter
@Setter
@AllArgsConstructor
public class ChatDTO {
private String userid;
private int clgid;
private String message;
}
public chatDTO(Stirng userid, int clgid,String message){
this.clgid = clgid;
this.userid = userid;
this.message = message;
}
@NoArgsConstructor
어떠한 변수도 파라미터로 받지 않는 생성자를 자동으로 만들어준다.
먼저 설명한 DTO에 @NoArgsConstructor을 사용하면 다음과 같은 생성자를 만든 것과 같다.
@Getter
@Setter
@NoArgsConstructor
public class ChatDTO {
private String userid;
private int clgid;
private String message;
}
public chatDTO(){
}
@RequiredArgsConstructor
특정 변수만을 파라미터로 받는 생성자를 자동으로 만들어준다. 생성자의 파라미터로 하고 싶은 변수에 @NonNull을 붙여주거나 final로 선언하면 된다.
예시 코드는 다음과 같다.
@Getter
@Setter
@RequiredArgsConstructor
public class ChatDTO {
@NonNull
private String userid;
private final int clgid;
private String message;
}
public chatDTO(Stirng userid, int clgid){
this.clgid = clgid;
this.userid = userid;
}
지금까지 사람들이 가장 많이 사용하는 어노테이션만 뽑아서 정리해보았다. 끝.
'백엔드' 카테고리의 다른 글
My Batis (0) | 2022.09.19 |
---|---|
MVC MVVM MVP (0) | 2022.09.19 |
[Spring] @PostMapping vs @PutMapping (0) | 2022.09.17 |
Spring boot 기본 개념(Controller, Service, DAO, DTO, Mapper) (0) | 2022.09.14 |
Thymeleaf (0) | 2022.09.13 |