@NonNull | 필드의 값이 null이 될 수 없음을 명시 |
@Getter | 필드의 get 메소드를 생성 |
@Getter(lazy=true) | getter 최초 호출 시 값을 한번 계산한 후 그 값을 캐시해서 사용 (매번 getter를 호출하는 것이 아닌 최초 한번만 호출하여 사용하기 위해) AccessLevel 지정 가능 |
@Setter | 필드의 set 메소드를 생성, AccessLevel 지정 가능 |
@NoArgsConstructor | 파라미터가 없는 기본 생성자 생성 |
@RequiredArgsConstructor | 초기화되지 않은 final 필드, @NonNull인 필드에 대한 생성자 생성 |
@AllArgsConstructor | 모든 필드를 가진 생성자 생성 |
@ToString | toString() 메소드 생성, exclude 속성을 사용하여 필요없는 속성 제거 @ToString(exclude = "value") |
@EqualsAndHashCode | equals(), hashCode() 메소드 생성, exclude 속성을 사용 가능 -> 모든 필드의 값이 같다면 a.equals(b) 의 결과가 참이 된다 |
@Data | @Getter + @Setter + @RequiredArgsConstructor + @ToString + @EqualsAndHashCode |
@Value | 불변을 의미하는 어노테이션 , @Value가 붙은 멤버필드는 private 접근제어자와 final이 붙은 상수가 된다.(final이 붙기 때문에 setter는 존재할 수 없다.) |
@Log | Logger 자동 생성 기능, 자동으로 log 필드를 만들고 해당 class 명으로 로거 객체를 생성하여 할당해준다. |
@Builder | Builder 자동 생성 |
@Singular | 어노테이션 사용시 원소를 하나씩 추가할 수 있다. |