[SpringBoot] 회원 관리 예제 (4)

hrotlzl·2022년 1월 27일
0

SpringBoot

목록 보기
9/9
post-thumbnail

📌 회원 서비스 개발

service 패키지 생성

  • MemberService.java
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 반환
  • 중복 회원 검증 : 파라미터로 넘어온 membergetName() 해서 emberRepository에서 findByName() 으로 찾기, 만약 값이 있다면 에러 문구 출력 (값이 있을 때만 동작)
    result로 받아도 되지만 어차피 findByName() 이 Optional로 반환되기 때문에 바로 ifPresent() 사용하는 방식 => Ctrl+T 눌러서 validateDuplicateMember() 메소드 추출
  • 전체 회원 조회 : findAll() 로 memberRepository 리스트로 반환
profile
Back-End

0개의 댓글