롬복 어노테이션 정리

2025. 6. 28. 13:28spring

반응형

1. @Getter, @Setter

  • 각 필드에 대한 get, set 메서드를 자동 생성
@Getter
@Setter
private String name;
  • 클래스에 붙이면 모든 필드에 대해 getter/setter 생성

2. @ToString

  • toString() 메서드를 자동 생성
  • 필드값을 보기 좋게 출력할 수 있게 함
@ToString
public class User {
    private String name;
    private int age;
}

 

3. @EqualsAndHashCode

  • equals(), hashCode() 메서드를 자동 생성
@EqualsAndHashCode
public class User {
    private String name;
    private int age;
}

 

 

4. @NoArgsConstructor

  • 파라미터가 없는 기본 생성자 생성
 
@NoArgsConstructor
public class User { ... }

JPA에서는 기본 생성자가 꼭 필요하므로 자주 사용됨


5. @AllArgsConstructor

  • 모든 필드 값을 파라미터로 받는 생성자 생성
@AllArgsConstructor
public class User {
    private String name;
    private int age;
}

6. @RequiredArgsConstructor

  • final이나 @NonNull 필드만 파라미터로 받는 생성자 생성
@RequiredArgsConstructor
public class Service {
    private final Repository repository;
}

7. @Data

  • 다음을 모두 한 번에 생성해줌:
    • @Getter, @Setter
    • @ToString
    • @EqualsAndHashCode
    • @RequiredArgsConstructor
@Data
public class User {
    private String name;
    private int age;
}

✨ 편리하지만, 무조건 사용하는 것은 지양 (불필요한 메서드 생성될 수 있음)


8. @Builder

  • Builder 패턴을 적용한 객체 생성 방식 지원
@Builder
public class User {
    private String name;
    private int age;
}
User user = User.builder()
                .name("Alice")
                .age(20)
                .build();

9. @Value

  • 불변 객체를 생성할 때 사용 (final, private, getter, 생성자 자동 포함)
@Value
public class Point {
    int x;
    int y;
}

10. @Slf4j

  • 로깅을 위한 Logger 객체 자동 생성
@Slf4j
public class MyService {
    public void hello() {
        log.info("Hello, Lombok Logger");
    }
}

지원되는 로그 종류: @Log, @Log4j, @Log4j2, @Slf4j, @CommonsLog 등

반응형

'spring' 카테고리의 다른 글

Entity 대신 DTO를 써야 하는 이유  (0) 2025.06.22
스프링 필터  (1) 2025.06.13
스프링 인터셉터(Interceptor)  (0) 2025.06.13
CORS (Cross-Origin Resource Sharing)  (1) 2025.06.13
CSRF (Cross-Site Request Forgery)  (1) 2025.06.13