ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Lombok
    BackEnd/Spring Boot 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

     

    반응형

    'BackEnd > Spring Boot' 카테고리의 다른 글

    Validation  (0) 2022.04.06
    Exception Handling  (0) 2022.04.05
    Spring Boot 설정 및 동작 원리  (0) 2022.04.05
    Spring Boot  (0) 2022.04.02
    Swagger  (0) 2021.07.23

    댓글

Designed by Tistory.