롬복 어노테이션 정리
2025. 6. 28. 13:28ㆍspring
반응형
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 |