BackEnd/Spring Boot
Lombok
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
반응형