LomBok 이란?
반복되는 매소드를 Annotation 을 사용하여 자동으로 작성하는 라이브러리다. Getter, Setter 같은 경우와 생성자 또는 빌드 할때 유용하게 쓰이게 된다. 이때 컴파일 과정에서 Annotation을 이용해서 코드를 생성하게 된다.
Gradle
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
LomBok Annotaion ( 어노테이션 )
@Getter, @Setter
필드에 있는 변수들의 getter, setter 를 생성해준다.
@Getter
@Setter
public class User {
private String id;
private String pw;
}
@NotNull
매서드나 생성자의 매개변수에 null check 해준다.
@ToString
기본적으로는 클래스 이름과 각 필드에 대한 값을 출력한다. 만약, 부모 클래스에도 toString 을 적용시킨다면,
@ToString(callSuper = true) 를 적용한다.
@ToString
public class User {
private String id;
private String pw;
}
@Data
모든 필드에 대해 @ToString, @EqualsAndHashCode, @Getter, 모든 non-final 필드에@Setter, @RequiredArgsConstructor 를 생성해준다.
@Data
public class User {
private String id;
private String pw;
}
@NoArgsConstructor
매개변수가 없는 기본 생성자를 생성한다.
@NoArgsConstructor
public class User {
private String id;
private String pw;
}
public User(){ } //와 같다.
@RequiredArgsConstructor
초기화되지 않은 모든 final 필드, @NonNull 필드에 대한 생성자를 생성한다 또한, 의존성 주입도 가능하다.
@NoArgsConstructor
public class User {
private String id;
private String pw;
}
@AllArgsConstructor
모든 필드에 대한 생성자를 만들어준다. 또한, 의존성 주입도 가능하다.
@AllArgsConstructor
public class User {
private String id;
private String pw;
}
@Builder
모든 필드에 대한 빌더를 만들어 준다. 만약 원하는 필드에만 빌더를 작성하고 싶으면 생성자 위에 @Builder 를 붙이면 된다.
public class User {
private String id;
private String pw;
@Builder
public User(String id, String pw){
this.id = id;
this.pw = pw;
}
}
User user = User.builder()
.id("아이디")
.pw("비밀번호")
.build();
Spring 에 의존성 주입을 할때,
@RequiredArgsConstructor 쓰고
private final String id;
이런식으로 많이 쓰는게 더 편리하고 좋을것 같다.
그전에는 @Autowired 를 썻지만 spring 버전과 java 버전이 올라가는 동시에 권장하지 않는다 라고 경고문이 나와
@RequiredArgsConstructor 를 많이 쓰게 될것같다.
'Spring' 카테고리의 다른 글
Redis (1) (2) | 2023.06.01 |
---|---|
Spring ControllerAdvice, RestControllerAdvice, ExceptionHandler (0) | 2023.05.27 |
WebSocket(2) (0) | 2023.05.25 |
Spring Security (1) (0) | 2023.05.24 |
Websocket (1) (0) | 2023.05.21 |