: 기본생성자를 자동으로 추가
: 모든 필드값을 파라미터로 받는 생성자를 추가
: final이나 NonNull
필드값만 파라미터로 받는 생성자를 추가한다.
: Class내 모든 필드의 Getter method를 자동 생성
: Class내 모든 필드의 Setter method를 자동 생성
: Class내 모든 필드의 toString method를 자동생성한다
ToString(exclude = "password")
특정 필드를 toString() 결과에서 제외한다.
클래스명(필드1이름=필드1값, 필드2이름=필드2값, …) 식으로 출력된다.
: equals와 hashCode 메소드를 오버라이딩
@EqualsAndHashCode(callSuper = true)
callSuper 속성을 통해 equals와 hashCode 메소드 자동생성시 부모클래스의 필드까지 감안할지 안할지에 대해 설정할수있다.
즉 true면 부모클래스의 필드값도 동일한지 체크하며, false면 자신 클래스의 필드값만 고려한다
: 어느 필드에 어떤값을 채워야할지 명확히 정하여 생성시점에 값을 채워준다
생성시점에 값을 채워주는 역할은 똑같다. 다만 빌더를 사용하면 어느필드에 어떤값을 채울지 명확하게 인지한다.
: @Getter
@Setter
@EqualsAndHashCode
@AllArgsConstructor
을 포함한 롬복에서 제공하는 필드와 관련된 모든 코드를 생성
실제로 사용하지 않는것이 좋다.
출처 : https://velog.io/@gillog/Spring-Annotation-%EC%A0%95%EB%A6%AC