Spring

[Spring Boot] Lombok

Joo.v7 2024. 11. 6. 09:45

1. Lombok

  • Java Library.
  • 반복되는 메소드를 Annotation을 사용해서 자동으로 작성해주는 라이브러리.
  • 생성자, Getter, Setter, Builder, Logger 등 다양한 코드를 작성하는 과정을 제거해준다.

 


 

2. 자주 사용하는 Annotation

 Lombok 의존성 추가

더보기
더보기
  • Lombok 의존성 추가
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.34</version>
</dependency>

 

@Getter

  • 해당 클래스의 각 필드에 대해 getter 메소드를 생성.
/* getName(), getAge() 자동 생성 */
@Getter
public class Example {
    private String name;
    private int age;
}

 

@Setter

  • 해당 클래스의 각 필드에 대해 setter 메소드를 생성.
/* setName(), setAge() 자동 생성 */
@Setter
public class Example {
    private String name;
    private int age;
}

 

@NoArgsConstructor

  • 해당 클래스에 인자를 포함하지 않는 생성자를 자동 생성.
/* public Example() {} 생성자 자동 생성됨 */
@NoArgsConstructor
public class Example {
    public String name;
    public int age;
}

 

@RequiredArgsConstructor

  • 해당 클래스에 final / non-nullfield argument를 포함하는 생성자를 자동 생성.
/* public Example(String name) {this.name = name;} 생성자 자동 생성됨 */
@RequiredArgsConstructor
public class Example {
    private final String name;
    public int age;
}

 

@AllArgsConstructor

  • 해당 클래스에 모든 argument를 포함하는 생성자를 자동 생성.
/* public Example(String name, int age) {this.name=name; this.age=age;} 자동 생성됨 */
@AllArgsConstructor
public class Example {
     private final String name;
     public int age;
}

 

@Slf4j

  • log라는 이름의 org.slf4j.Logger 타입의 정적 필드가 자동 생성. (SLF4J 인터페이스 기반으로 한 로그 객체 자동 생성)
  • @Slf4j를 통해 log 객체를 따로 선언할 필요가 없어, 코드가 간결해짐.

예시) log.debug()

더보기
더보기
  • Logback 의존성 추가 
    • 로그를 남기는 기능을 제공하는 로깅 프레임워크
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.5.6</version>
</dependency>
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Example {
     log.debug("log 찍기");
}

 

 


 

출처: https://projectlombok.org/features/

 

Stable

 

projectlombok.org