G:\spring\hello-spring\src\main\java\hello\hellospring\service\MemberService.java
public class MemberService {
private final MemberRepository memberRepository = new MemoryMemberRepository();
//회원가입
public Long join(Member member){ //id는 임시로 반환하게 한 듯.
//같은 이름일 시 중복회원 X
validateDuplicateMember(member);
memberRepository.save(member);
return member.getId();
}
private void validateDuplicateMember(Member member) {
memberRepository.findByName(member.getName()) //여기까지 Optional로 반환
.ifPresent(member1 -> { // ifPresent는 값이 있으면, 그러니까 참이라면 아래 코드를 실행
throw new IllegalStateException("이미 존재하는 회원입니다.");
});
}
public List<Member> findMembers(){
return memberRepository.findAll();
}
public Optional<Member> findOne(Long memberId){
return memberRepository.findById(memberId);
}
}
throw new IllegalStateException("이미 존재하는 회원입니다.");
이렇게 예외 던질 시 따로 처리를 안해주면 거기에서 로직이 멈추므로..
ifPresent는 Optional의 값을 가지고 있는지 아닌지 검사해보는 함수.
이거는 다음장 회원 서비스 테스트 해보면서 제대로 해 봐야 할 듯.
'스프링 > 0. 입문, 전체방향' 카테고리의 다른 글
11장 스프링 빈 등록. 자동 의존관계 설정 (0) | 2023.07.08 |
---|---|
10장 회원 서비스 테스트 (0) | 2023.07.08 |
8강 회원관리 예제 테스트 (0) | 2023.07.06 |
7강 회원관리 예제 (0) | 2023.07.06 |
6강 API 방식으로 데이터 주기 (0) | 2023.07.06 |