Lombok 롬복이란?
자바 라이브러리로 코드를 효율적으로 작성할 수 있도록 도와준다. 어노테이션을 사용하여 소스 코드 가독성을 증가시켜준다.
접근자, 생성자 자동 생성
@Getter, @Setter
필드에 어노테이션을 설정해주면 자동으로 get(), set() 메소드를 생성해준다.
boolean 타입인 경우 is() 를 생성해준다.
필드가 아닌 클래스에 어노테이션을 선언해주면, 모든 필드에 접근자와 설정자가 자동으로 생성된다.
생성자 자동 생성
@NoArgsConstructor
- 파라미터가 없는 기본 생성자를 만들어 준다.
@AllArgsConstructor
- 모든 필드 값을 파라미터로 받는 생성자를 만들어준다.
@RequiredArgsConstructor
- final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 만들어준다.
직접 생성자를 쓰지 않고 롬복 어노테이션을 쓰는 이유?
해당 클래스의 의존성 관계가 변경될 때마다 생성자 코드를 계속해서 수정하는 번거로움을 해결하기 위함이다. 롬복 어노테이션을 사용하면 컨트롤러에 새로운 서비스를 추가하거나, 기존 컴포넌트를 제거하는 등의 상황이 발생해도 생성자 코드를 손대지 않아도 된다.
ToString 메소드 자동 생성
@ToString
toString() 메소드를 자동으로 만들어준다.
exclude 속성을 사용하면 특정 필드를 toString() 결과에서 제외시킬 수 있다.
@ToString(exclude = "name")
name 필드는 toString 메소드에서 제외된다.
equals, hashCode 자동 생성
@EqualsAndsHashCode 어노테이션을 사용해서 equals 와 hashCode 메소드를 자동으로 생성해준다.
@Data
@Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode 를 한꺼번에 설정해준다.
@Builder
클래스 레벨에 붙이거나 생성자에 붙여주면 파라미터를 활용하여 빌더 패턴을 자동으로 생성해준다.
생성자 상단에 선언 시 생성자에 포함된 필드만 빌더에 포함된다.
'Project > SpringBoot를 사용해서 웹 서비스를 만들어보자' 카테고리의 다른 글
템플릿 엔진이란 (0) | 2023.08.22 |
---|---|
Spring 웹 계층 (0) | 2023.08.18 |
JPA Auditing (0) | 2023.08.17 |
springboot lombok symbol method builder() 에러 해결 (0) | 2023.08.14 |
mustache 한글 깨짐 오류 (0) | 2023.06.07 |