본문 바로가기
Programming/Java

[Java] lombok annotation 롬복 어노테이션 정리

by hongchii 2021. 4. 16.
728x90
반응형

 

@NonNull 

 Null 값이 될 수 없다는 것을 명시합니다. NullPointerException에 대한 대비책이 될 수 있습니다.

@Cleanup 

 자동으로 close() 메소드를 호출하는 역할을 합니다. 

@Getter

 코드가 컴파일될 때 속성들에 대해서 getter 메소드들을 생성합니다. 

@Getter(lazy=true)

 동기화를 이용해서 최초 한번만 getter를 호출합니다.  

@Setter  

 코드가 컴파일될 때 속성들에 대해서 setter 메소드들을 생성합니다.  

 

 속성 

 - value : 접근 제한 속성을 의미, 기본값 lombok.AccessLevel.PUBLIC

 - onMethod : setter 메서드 생성 시 메서드에 추가할 어노테이션을 지정합니다.

                 코드는 특이하게도 '_' 표기가 사용되는데 JDK 버전에 따라 차이가 있습니다. 

                 up to JDK7 : @Setter(onMethod=@__({@AnnotationsGoHere}))

                 from JDK8 : @Setter(onMethod_={@AnnotationsGoHere}) // note the underscore after onMethod.

 - onParam : setter 메서드의 파라미터에 어노테이션을 사용하는 경우에 적용

@ToString 

 toString() 메소드를 생성합니다. 

@EqualsAndHashCode

 해당 객체의 equals()와 hashCode() 메소드를 생성합니다.

@NoArgsContructor/

@RequiredArgsConstructor/

@AllArgsConstructor

 파라미터를 받지 않는 생성자를 만들어 주거나 (@NoArgsConstructor), 지정 된 속성들에 대해서만 생성자를 만들거나 (@RequiredArgsConstructor), 모든 속성에 대해서 생성자를 만들어 냅니다. (@AllArgsConstructor)

@Data

 @ToString, @EqualsAndHashCode, @Getter(모든 속성), @Setter(final이 아닌 속성), @RequiredArgsConstructor를 합쳐둔 어노테이션입니다. 

@Value

 불변(immutable) 클래스를 생성할 때 사용합니다. 

@Log

 자동으로 생기는 log라는 변수를 이용해서 로그를 찍을 수 있습니다. 

 실제 컴파일 시 생성되는 코드 예 :

 private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());

@Log4j

 자동으로 생기는 log라는 변수를 이용해서 로그를 찍을 수 있습니다 (Log4j 설정을 이용.)

@Builder

 빌더패턴을 사용할 수 있도록 코드를 생성합니다. 

 new ABC().setA().setB().setC()와 같이 체이닝을 할 수 있는 코드를 생성합니다. 

@SneakyThrows 

 예외 발생 시 Throwable 타입으로 반환합니다. 

@Synchronized

 메소드에서 동기화를 설정합니다. 

728x90
반응형

댓글