애너테이션 정리
[lombok]
1. @NoArgsConstructor
- 기본 생성자 생성
public People(){}
2. @AllArgsConstructor
3. @Getter
- 모든 멤버 변수값을 반환하는 변수당 1:1로 데이터를 가져올 때 사용하는 메서드
- 멤버 변수가 직접 접근하지 않고 해당 getXxx() 메서드를 통해서 변수의 데이터 값을 받을 수 있게 해주어 정보 은닉에 탁월하다.
4. @Setter
- 모든 멤버 변수값을 새로운 데이터로 초기화하는 변수당 1:1로 데이터 변경을 진행하는 메서드
- 멤버 변수의 값에 직접 접근은 하지 않지만 해당 메서드를 사용해서 데이터 변경을 하면 별로 좋지 않다고 한다. 그래서 해당 애너테이션은 현업에서는 자주 사용되지 않음을 주의하자.
5. @ToString
- 모든 멤버 변수값을 결합해서
하나의 문자열로 반환
해주는 재정의 메서드
6. @RequiredArgsConstructor
- 선별해서 원하는 멤버 변수만 초기화할 수 있게 해주는 동적 parameter 생성자를 생성
7. @NonNull
- @RequiredArgsConstructor와 매핑되어 선언된 멤버 변수만 초기화할 수 있게 해주는 생성자를 생성할 때 사용
@NotNull
과는 다른 애너테이션으로 @NonNull
을 사용하는 것만으로는 어떤 기능도 동작하지 않는다.
@NonNull
은 @RequiredArgsConstructor와 매핑하여 사용하기 때문에 둘을 같이 사용해주어야 한다.
8. @Builder
- 생성자를 builder라는 이름으로 메서드를 동적으로 생성해준다.
9. @Slf4j
- log 기록을 할수 있게 해주는 추상화된 기능을 제공해주는 애너테이션
[@NonNull과 @RequiredArgsConstructor]
1. 사용 예시 코드
@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@RequiredArgsConstructor
public class People {
@NonNull
private String name;
private int age;
//단위 Test - 단순 실행을 위한 개발자용 annotation
@Test
public void test() {
People p = new People();
People p2 = new People("t", 1);
//@RequiredArgsConstructor에 의해서 해당 작업이 가능
People p3 = new People("t");
}
}
- 기존의
@AllArgsConstructor
를 사용하면 @RequiredArgsConstructor
를 사용할 때 오류가 난다.
- 그러나
@NonNull private String name;
를 사용하게 되면 @RequiredArgsConstructor
를 추가적으로 달아줘도 문제가 생기지 않는다.
- 이는 name이라는 필드를 꼭 초기화하고자 할 때 사용하는 애너테이션으로 이 작업을 진행하면 필요한 생성자를 만들어주는
@RequiredArgsConstructor
를 이용해서 유연하게 작업이 가능해진다.