Spring/inflearn

회원 서비스 개발

곽수진 2022. 8. 24. 21:46
반응형

memberRepository.findByName(member.getName()).ifPresent(m -> {throw new IllegalStateException("이미 존재하는 회원입니다.");}) : memberRepository에서 이름을 찾아 존재한다면 "이미 존재하는 회원입니다." 출력

    → IllegalStateException : 메소드를 호출하기 위한 상태가 아닐 때 사용

 

package hello.hellospring.service;

import hello.hellospring.domain.Member;
import hello.hellospring.repository.MemberRepository;
import hello.hellospring.repository.MemoryMemberRepository;

import java.util.List;
import java.util.Optional;

public class MemberService {

    private final MemberRepository memberRepository = new MemoryMemberRepository();

    // 회원가입
    public Long join(Member member){
        // 동일한 이름을 가진 중복 회원 방지
        validateDuplicateMember(member); // 중복 회원 검증

        memberRepository.save(member);
        return member.getId();
    }

    private void validateDuplicateMember(Member member) {
        memberRepository.findByName(member.getName())
            .ifPresent(m -> {
                throw new IllegalStateException("이미 존재하는 회원입니다.");
        });
    }

    // 전체 회원 조회
    public List<Member> findMembers(){
        return memberRepository.findAll();
    }

    public Optional<Member> findOne(Long memberId){
        return memberRepository.findById(memberId);
    }
}

 

refactor 단축키 : ctrl + alt + shift + t
→ 클래스나 변수명 등 네이밍 변경할 경우 활용 가능
반응형

'Spring > inflearn' 카테고리의 다른 글

컴포넌트 스캔과 자동 의존관계 설정  (0) 2022.08.28
회원 서비스 테스트  (0) 2022.08.25
회원 repository 테스트 케이스 작성  (0) 2022.08.23
회원 domain과 repository 만들기  (0) 2022.08.22
API  (0) 2022.08.21