강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

회원 등록 API

@Data 생성자

해결된 질문

작성

·

631

0

@Data 는 롬복 어노테이션으로

@toString + @getter + @setter + @RequiredArgsConstructor + @EqualsAndHashCode

를 합친 어노테이션으로 알고 있습니다.

 

그래서 @Data를 사용했을 때

생성자, getter, setter...를 따로 안 적어주어도 되는데 

강의 8분22초에서는 생성자를 따로 생성했습니다.

@PostMapping("/api/v1/members")
public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member) {
Long id = memberService.join(member);
return new CreateMemberResponse(id);

}

@Data
static class CreateMemberResponse{
private Long id;

public CreateMemberResponse(Long id) {
this.id = id;
}
}

왜 만들어 주었는지 궁금합니다.

 

답변 1

0

안녕하세요. jarry님, 공식 서포터즈 y2gcoder입니다.

@RequiredArgsConstructor는 final 키워드나 @NotNull이 붙은 필드를 포함해 생성자를 자동으로 만들어주는 애노테이션입니다. 
CreateMemberResponse의 필드는 final 키워드, @NotNull이 모두 없으므로 id를 받는 생성자를 새로 생성해줘야 합니다 :)


감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기