본문 바로가기

공부 기록/Spring

[Spring] @Data 어노테이션

@Data

- 롬복의 어노테이션

- 모든 필드에 대한 Getter, Setter, equals(), hashCode(), toString() 메서드, 기본 생성자, 모든 필드를 포함한 생성자를 생성

  

@Data를 사용하지 않았을 때

import java.util.Objects;

public class Member {
    private String name;
    private int age;

    public Member() {}

    public Member(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    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;
        Member member = (Member) o;
        return age == member.age && Objects.equals(name, member.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    @Override
    public String toString() {
        return "Member{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

  

@Data 사용

import lombok.Data;

@Data
public class Member {
    private String name;
    private int age;
}

- @Data 어노테이션은 실무에서는 잘 사용되지 않는다. => 원치 않는 정보가 toString에 의해 노출될 수 있기 때문