본문 바로가기
Programming/Spring

Spring boot 시작하기 - 5강(Service)

by Wilkyway 2020. 11. 26.
반응형

Service를 구현합니다. hello.hellospring하위에 Service 패키지를 만들고 MemberService클래스를 추가합니다.

1. MemberService클래스

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);
    }

}

 

메서드 validateDuplicateMember(Member member) 부분은 Join 메서드 내부에서 구현했던 부분인데, Method Extraction이라는 기능으로 외부 함수로 꺼내왔습니다. 단축키는 Alt+Shift+T입니다.

반응형

댓글