📌 회원 서비스 개발
service
패키지 생성
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) {
// 같은 이름이 있는 중복 회원 X
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);
}
}
회원 서비스를 만들기 위해서는 회원 리포지토리가 있어야 함
- 회원 가입 : memberRepository에
save()
호출,member
의 id 반환- 중복 회원 검증 : 파라미터로 넘어온
member
를getName()
해서 emberRepository에서findByName()
으로 찾기, 만약 값이 있다면 에러 문구 출력 (값이 있을 때만 동작)
result로 받아도 되지만 어차피findByName()
이 Optional로 반환되기 때문에 바로ifPresent()
사용하는 방식 =>Ctrl+T
눌러서validateDuplicateMember()
메소드 추출- 전체 회원 조회 :
findAll()
로 memberRepository 리스트로 반환