스프링/0. 입문, 전체방향

9장 회원관리 서비스 구현

sdafdq 2023. 7. 7. 00:13

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의 값을 가지고 있는지 아닌지 검사해보는 함수.

 

이거는 다음장 회원 서비스 테스트 해보면서 제대로 해 봐야 할 듯.