반응형
Lombok(롬복)이란?
스프링 부트에서 Model 객체(DTO, VO, Domain)를 만들 때, 다 비슷하게 생긴 Getter와 Setter를 굳이 만들어줘야하는 번거로움이 있었다. 물론 빠르게 만드는 키가 있기는 하지만 필드명을 변경하거나 추가할 때 실수로 getter/setter를 변경하지 않아서 오류가 나는 경우에 번거롭다.
Lombok은 이렇게 불필요하게 반복되는 코드들을 어노테이션을 통해 getter/setter, ToString 등을 자동으로 처리해주는 편리한 라이브러리이다.
어노테이션 종류
아래에 쓰인 어노테이션들 이외에도 공식문서에 더 많은 어노테이션들이 있다.
어노테이션 | 설명 |
@Getter, @Setter | getter(), setter() 메소드 생성 |
@EqualsAndHashCode | equals(), hashCode() 메소드 생성 |
@RequiredArgsConstructor | final이나 @NonNull이 붙은 필드값만 인자로 받는 생성자 생성 |
@ToString | toString() 메소드 생성 |
@Data | 위의 5가지 어노테이션 설정 모두 포함 |
@var | final 키워드 대신 사용하는 변수 선언 class |
@NonNull | 해당 값이 Null일 경우 NullPointerException을 발생 |
@NoArgsConstructor | 인자 없는 생성자 생성 |
@AllArgsConstructor | 모든 인자를 가진 생성자 생성 |
@Builder | Builder API처럼 사용할 수 있도록 지원 |
- @Data
적용 전
public class UserDto {
private int index;
private String name;
private LocalDate birthDay;
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public LocalDate getBirthDay() {
return birthDay;
}
public void setBirthDay(LocalDate birthDay) {
this.birthDay = birthDay;
}
}
적용 후
@Data
public class UserDto {
private int index;
private String name;
private LocalDate birthDay;
}
위에 작성한 어노테이션 이외의 것들은 공부하면서 새롭게 알게되면 더 추가해야겠다!
참고
https://goddaehee.tistory.com/95
반응형
'Study > Spring boot' 카테고리의 다른 글
[Spring boot] Snake_case to camelCase (0) | 2022.03.22 |
---|---|
[Spring boot] 의존성 주입(DI) 복습 (0) | 2022.02.23 |
[Spring boot] @RequestParam과 @PathVariable (0) | 2022.01.28 |
[Spring] Spring mvc life cycle (0) | 2022.01.02 |
[Spring] 스프링과 스프링부트 , 빈(Bean) (0) | 2021.12.24 |