반응형
@Data
@Data는 Lombok 라이브러리에서 제공하는 어노테이션이다.
@Data : @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 모두를 자동으로 적용한다.
단, callSuper, includeFieldName, exclude 등은 지정할 수 없다.
Lombok 라이브러리의 어노테이션을 개별적으로 사용하여 지정해야 한다.
따라서 @Data는 어노테이션의 기본 설정 값을 사용할 때 사용해야 한다.
사용 예제
@Data
public class HelloData {
private String username;
private int age;
}
비교(@Data를 사용하지 않는 경우)
@Getter
@Setter
@ToString
@EqualsAndHashCode
@RequiredArgsConstructor
public class HelloData {
private String username;
private int age;
}
비교(Lombok 라이브러리를 사용하지 않는 경우)
public class HelloData {
private String username;
private int age;
public HelloData(String username, int age) {
this.username = username;
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
HelloData helloData = (HelloData) o;
return age == helloData.age && Objects.equals(username, helloData.username);
}
@Override
public int hashCode() {
return Objects.hash(username, age);
}
@Override
public String toString() {
return "HelloData{" +
"username='" + username + '\'' +
", age=" + age +
'}';
}
}
놀랍게도 위에 작성된 세 가지의 코드는 모두 같은 코드이다.
반응형
'프레임워크(Framework) > Spring' 카테고리의 다른 글
[Spring MVC] HTTP 요청 파라미터 (0) | 2022.11.15 |
---|---|
[Spring MVC] HTTP 요청 헤더 정보 조회 (0) | 2022.11.14 |
[Spring MVC] 스프링 MVC 뷰 리졸버(View Resolver) (0) | 2022.11.13 |
[Spring MVC] 스프링 MVC 핸들러 매핑과 핸들러 어댑터 (0) | 2022.11.12 |
[Spring MVC] HTTP 요청 매핑(HTTP Request Mapping) 관련 어노테이션 정리 (0) | 2022.11.11 |