@RequiredArgsConstructor
@Service
public class DiaryRegisterService {
private final CoupleRepository coupleRepository;
private final DiaryRepository diaryRepository;
private final UserRepository userRepository;
public DiaryRegisterResponse addDiary(DiaryRegisterRequest diaryRegisterRequest) {
Couple couple =
coupleRepository
.findByCoupleToken(diaryRegisterRequest.getCoupleToken())
.orElseThrow(() -> new IllegalArgumentException("Invalid CoupleToken"));
Diary diary =
diaryRepository.save(
Diary.builder().couple(couple).date(diaryRegisterRequest.getDate()).build());
return DiaryRegisterResponse.builder().diaryId(diary.getId()).build();
}
}
- ResponseEnitity 를 적용하고 싶었지만 프론트 작업이 들어가기 때문에 Response 는 똑같이 만들었다.( 대부분 그럴것,, )
@RequiredArgsConstructor
이 어노테이션은 초기화 되지않은 final 필드, @NonNull 이 붙은 필드에 대해 생성자를 자동으로 생성해줍니다.
위와 같이 Repogitory 에 final 을 붙여준 이유입니다.
- 컴파일 시점에 누락된 의존성을 확인할 수 있다.
- Spring에서 생성자가 1개인 경우 @Autowired를 생략할 수 있도록 도와준다.
- 해당 생성자는 @RequiredArgsConstructor 로 구현하였다.
반응형
'Project > DARLING' 카테고리의 다른 글
7. CI/CD 계획 (0) | 2022.02.09 |
---|---|
6. 무엇이 문제일까 ... (0) | 2022.01.25 |
5. Spring REST Docs 사용 (0) | 2022.01.24 |
4. 연관관계 - OneToMany (0) | 2022.01.23 |
3. 연관관계 - ManyToOne (0) | 2022.01.23 |