Lombok에서 자주 사용되는 어노테이션
Lombok 라이브러리에서 제공하는 어노테이션
@Getter 와 @Setter
public class User {
@Getter
@Setter
private String name;
}
롬복에서 가장 많이 사용되는 어노테이션으로 위처럼 특정필드에 선언하면 자동으로 getName(), setName() 메소드를 생성해준다.
또한, 특정 필드가 아닌 클래스에 @Getter @Setter 을 선언해줄 경우, 모든 필드에 접근자와 설정자가 자동으로 생성된다.
@NoArgsConstructor 은 파라미터가 없는 기본 생성자를 생성해준다.
@AllArgsConstructor 은 모든 필드 값을 파라미터로 받는 생성자를 생성해준다.
@RequiredArgsConstructor 은 final 이나 @NonNull 인 필드 값만 파라미터로 받는 생성자를 생성해준다.
@ToString 은 toString() 메소드를 자동으로 생성해준다. exclude 속성을 사용하면, 특정 필드를 생성에서 제외시킬수 있다.
@ToString(exclude = "password")
public class User {
private String name;
private String id;
private String password;
}
@EqualsAndHashCode 은 equals 와 hashCode 메소드를 자동으로 생성해준다.
callSuper 속성을 이용하면 메소드 자동생성시 부모클래스의 필드까지 감안할지 안할지에 대해서 설정 할 수 있다.
callSuper = true 로 설정하면 부모클래스의 필드 값들도 동일한지 체크하며, false로 설정(기본값)하면 자신 클래스의 필드 값들만 고려한다.
@EqualsAndHashCode(callSuper = true)
public class User extends Domain {
private String name;
private String id;
private String password;
}
@Data 는 위의 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode 를 한꺼번에 설정해주는 어노테이션이다.
@Data
public class User {
private name;
private id;
private password;
}
클래스에 @Data 어노테이션을 입력하면 모든 필드를 대상으로 getter, setter가 자동으로 생성되고, final 또는 @NonNull 필드값을 파라미터로 받는 생성자가 생성되며, toString, equals, hashCode 메소드가 생성된다.
@Builder