TIL
[TIL] 생성자 관련 어노테이션 @NoArgsConstructor @RequiredArgsConstructor @AllArgsConstructor
봄봄로그
2023. 7. 4. 22:53
별거아닌 기본인데 자꾸만 헷갈려서 안되겠다.. 내가보려고 써놓는 간단한 정리
@NoArgsConstructor
- 기본생성자를 만든다.
- public Member() {}
@RequiredArgsConstructor
- 선언된 모든 final필드가 포함된 생성자를 생성한다.
- final이 없는 필드는 생성자에 포함되지 않는다.
@Autowired를 사용하지 않고 이렇게 사용하는 것을 권장한다.
@RequiredArgsConstructor
@Controller
public class IndexController {
private final PostsService postsService;
...
}
@AllArgsConstructor
- 선언된 모든 필드의 생성자를 생선한다.
만약 DTO클래스 내부에서 생성자를 만들고 @Builder 를 사용한다면? 이 @AllArgsConstructor 사용할 일이 없겠지. 그리고 이 어노테이션을 사용하는 것 보다 생성자를 만드는 것을 더 권장한다고 한다.!
@Getter
@NoArgsConstructor
public class PostsSaveRequestsDto {
private String title;
private String content;
private String author;
@Builder
public PostsSaveRequestsDto(String title, String content, String author) {
this.title = title;
this.content = content;
this.author = author;
}