728x90
@Getter @Setter
각각 접근자와 설정자 메서드를 작성해주는 Lombok 어노테이션으로 유명하다.
또, 생성자를 자동 생성해주는 Lombok 어노테이션에는
- @NorgsConstructor 파라미터가 없는 기본 생성자 생성
- @AllArgsConstructor 모든 필드 값을 파라미터로 받는 생성자를 만들어 줌
- @RequiredArgsConstructor final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 만들어 줌
toString() 메소드를 작성하는 일도 @ToString 어노테이션만 붙여주면 자동으로 생성해 줌
@ToString(exclude = "id")와 같이 exclude를 사용하면 toString() 결과에서 id를 제외시킬 수 있음
//사용할 때
User user = new User();
user.serId("lol");
sysout(user);
//결과
User(id=lol) 식으로 출력 됨
@EqualsAndHashCode
equals, hashCode 자동 생성
- equals : 두 객체의 내용이 같은지, 동등성(equality)을 비교하는 연산자
- hashCode : 두 객체가 같은 객체인지, 동일성(identity)를 비교하는 연산자
자바 bean에서 동등성 비교를 위해 equals와 hashcode 메소드를 오버 라이딩해서 사용하는데, @EqualsAndHashCode 어노테이션을 사용하면 자동으로 이 메소드를 생성할 수 있음
callSuper 속성을 통해 equals와 hashCode 메서드 자동 생성 시 부모 클래스의 필드까지 감안할지의 여부를 설정할 수 있다.
@EqualsAndHashCode(callSuper=true)로 설정시 부모 클래스 필드 필드 값들도 동일한지 체크하며, false(기본값) 일 경우 자신 클래스의 필드 값만 고려함.
@Data
- @Data는 위에서 설명한 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode를 한 번에 설정해주는 어노테이션임
이 어노테이션을 사용하면 모든 필드를 대상으로 접근자, 설정자가 자동 생성되고 final 또는 @NonNull 필드 값을 파라미터로 받는 생성자가 만들어지고, toString, equals, hashCode 메서드가 자동으로 만들어진다.
'Back-End > Study' 카테고리의 다른 글
@RequiredArgsConstructor - Dependency Injection (0) | 2022.08.11 |
---|---|
DAO와 Repository 차이 (0) | 2022.08.10 |
JPAQueryFactory (0) | 2022.08.01 |
유효성 검사 - @NotNull @NotEmpty @NotBlank (0) | 2022.07.30 |
순환참조 해결 @JsonIgnore, @JsonManagedReference, @JsonBackReference (0) | 2022.07.29 |