[Spring] @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor 생성자 어노테이션 개념
2022. 8. 9. 18:49ㆍWeb/Spring
스프링을 공부하면서 조금씩 기능을 파악하던 도중 lombok라이브러리에 있는 생성자를 만들어주는 어노테이션들을 알게되었다. 세 가지의 종류가 존재하며 이를 토대로 각자 어떤 상황에는 어떤 어노테이션을 써야하는지 정리하고자 한다.
Lombok 어노테이션 ( Getter / Setter / Data / (No / All / Required ) Constructor... etc)를 잘 모르고 사용하게 된다면 에러를 발생시키는데 그중에서 Constructor 어노테이션에 대해 정리하려한다.
해당 코드는 Web todo를 만들 때 사용하였던 UserDTO다. 기록을 위해 해당 객체에 조금의 수정을 해서 가져왔다.
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class UserDTO {
@NotNUll
private String email;
private String password;
private String id;
}
@NoArgsConstructor
파라미터가 없는 기본 생성자를 생성한다.
초기값에 final 지정 변수가 있을 경우 추후에 컴파일 에러가 발생한다.
UserDTO user = new UserDTO();
@AllArgsConstructor
모든 필드값을 파라미터로 받는 생성자를 생성한다.
UserDTO user = new UserDTO("mxxxxx222@gamil.com" , "skyriv" , "asdf12");
@RequiredArgsConstructor
final, NotNull등의 표시가 된 필드 값만 파라미터로 받는 생성자를 생성한다.
이번 경우에는 email값만 표시가 되었기에 email 값만 넣어주면 된다.
UserDTO user = new UserDTO("asdjka@gmail.com");
'Web > Spring' 카테고리의 다른 글
[Spring] @PathVariable, @RequestParam, @RequestBody, @ModelAttribute (0) | 2022.12.07 |
---|---|
[Error] java: package org.springframework.boot does not exist (0) | 2022.10.01 |
[Spring-Thymeleaf] Thymeleaf - 타임리프(1) (0) | 2022.08.07 |
[Spring] MVC 패턴이란? (0) | 2022.08.04 |
[Spring] 레이어드 아키텍쳐(Layered Architecture) (0) | 2022.07.25 |