hanseom 2021. 7. 9. 12:00
반응형

Lombok이란 getter, setter, toString 등의 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리입니다.

@어노테이션 기반으로 반복 소스코드를 컴파일 과정에서 생성해주는 방식으로 동작하기에 .class 파일에는 코드가 생성되어 있습니다.

 

Lombok을 Spring Boot에서 사용하기 위해서는 depency를 추가해주면 됩니다.

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<optional>true</optional>
</dependency>

 

Lombok Installation (IntelliJ)

1) Plugin

  > Setting > Plugins > Marketplace > Lombok [Install] > [Restart IDE]

 

2) Enable annotation processing check

  > Setting > Build, Execution, Deployment > Compiler > Annotation Processors

 

Lombok features

Annotation Description
@NonNull null을 허용하지 않는다.
(메소드나 생성자의 파라미터 null Check)
@Cleanup 안전하게 close() 메소드를 호출한다.
@Getter/@Setter 필드에 대한 getter, setter를 자동으로 생성한다.
@ToString toString() 메소드의 구현을 생성한다. 기본적으로는 각 필드와 함께 클래스 이름을 쉼표로 구분하여 순서대로 출력한다.
@NoArgsConstructor 매개변수가 없는 생성자를 생성한다.
@RequiredArgsConstructor 초기화되지 않은 모든 final 필드, @NonNull 필드에 대한 생성자를 생성한다.
@AllArgsConstructor 모든 필드에 대한 생성자를 생성한다.
@Data 모든 필드에 대해 @ToString, @EqualsAndHashCode, @Getter를 모든 non-final 필드에 대해 @Setter를 설정하고 @RequiredArgsConstructor를 설정하는 단축 Annotation이다.
@Value @Data의 변경할 수 없는 변형이다.
@SneakyThrows 메소드 선언부에 사용되는 throws 키워드 대신 예외 클래스를 파라미터로 입력받는다.
@Synchronized 파라미터로 입력받는 Object 단위로 Lock을 건다. 파라미터로 아무 것도 입력하지 않으면 Annotation이 사용된 메소드 단위로 락을 건다.
@With @Setter의 변경할 수 없는 변형이다. @With는 객체를 생성하기 위해 생성자(@With필드명)에 의존한다. 만약 적절한 생성자가 존재하지 않으면 컴파일 오류를 발생시킨다.
@Log 클래스 상단에 선언하는 static final log 필드를 자동으로 생성한다. 지원되는 Logger에 따라 다른 어노테이션을 사용한다.

 

https://projectlombok.org/features/all

 

Stable

 

projectlombok.org

 

반응형