개발자의 오르막
[#SpringBoot ] Lombook 어노테이션 정리 본문
# LomBook 어노테이션 정리
@NonNull | Null 값이 될 수 없다는 것을 명시합니다. NullPointerException에 대한 대비책이 될 수 있습니다. |
@Cleanup | 자동으로 close() 메소드를 호출하는 역할을 합니다. |
@Getter/Setter | 코드가 컴파일될 때 속성들에 대해서 Getter/Setter 메소드들을 생성합니다 |
@ToString | toString() 메소드를 생성합니다. |
@EqualsAndHashCode | 해당 객체의 equals()와 hashCode() 메소드를 생성합니다. |
@NoArgsConstructor | 파라미터를 받지 않는 생성자를 만들어줌 |
@RequiredArgsConstructor | 지정된 속성들에 대해서만 생성자를 만들어줌 |
@AllArgsConstructor | 모든 속성에 대해서 생성자를 만들어줌 |
@Data | @ToString @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 를 모두 합친 어노테이션 |
@Value | 불변 (immutable) 클래스를 생성할 때 사용 |
@Log | Log 라는 변수를 이용해서 로그를 찍을 수 있음 |
@Builder | 빌더 패턴을 사용할 수 있도록 코드를 생성 new AA().setA().setB().setC()와 같이 체이닝을 할 수 있는 코드를 생성 |
@SneakyThrows | 예외 발생 시 Throwable 타입으로 반환합니다. |
@Synchronized | 메소드에서 동기화를 설정합니다. |
@Getter(lazy=true) | 동기화를 이용해서 최초 한 번만 getter를 호출 |
# Data 어노테이션
Data 어노테이션에 @toString 어노테이션이 포함되어 있다.
만일 모델의 부모-자식 관계가 설정될 경우, (Member - Address) 스택오버플로우 문제가 생길 수 있다.
회원의 칼럼으로, Id, username, address 가 있다고 가정할 때, @toString 으로 address 를 String 으로 풀어쓰려한다.
이 때 address 객체 안에는 Member 를 부모로 상속받기 때문에, address 안에서도 다시 Member를 String으로
풀어 쓰려기 때문에 무한 루프로 빠지게 된다.
이 때 StackOverFlow 가 발생하게 된다.
'SpringFrameWork > SpringBoot' 카테고리의 다른 글
[#SpringBoot] CascadeType.Remove 와 orphanRemoval 의 차이 (0) | 2020.05.28 |
---|---|
[#SpringBoot] Jpa 개념 정리 (0) | 2020.05.16 |
[Spring Boot] application.yml 설정 방법 (0) | 2020.04.02 |
[스프링 기반 REST API 개발 #02] EVENT REST API (0) | 2020.03.22 |
[스프링 기반 REST API 개발 #01] REST API 소개 (0) | 2020.03.21 |
Comments