반응형
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입니다.
반응형
'Programming > Spring' 카테고리의 다른 글
Spring boot 시작하기 - 6강(컴포넌트 스캔과 자동의존관계 설정) (0) | 2020.11.26 |
---|---|
Spring boot 시작하기 - 5강(테스트) (0) | 2020.11.26 |
Spring boot 시작하기 - 4강(테스트) (0) | 2020.11.25 |
Spring boot 시작하기 - 4강(회원 도메인과 리포지토리) (0) | 2020.11.25 |
Spring boot 시작하기 - 3강(파라미터 있는 MVC) (0) | 2020.11.23 |