공부이야기/[Spring.210428~]
[스프링 입문] 회원 서비스 개발
Nameless
2021. 5. 1. 13:21
Repository
=> findById, findByName, save 등 ...
단순히 저장소에 넣었다뺐다하는 느낌 것
기계적, 개발적임
Service
=> join, findMembers
이름이 비즈니스에 가깝다. 비즈니스 처리.
Service는 비즈니스에서 가져오는 용어를 써야 개발자, 기획자 모두 의사소통 가능해짐.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
public class MemberService {
private final MemberRepository memberRepository = new MemoryMemberRepository();
//회원 가입, 비즈니스 로직에서 같은 이름의 회원 x
public Long join(Member member){
validateDuplicateMember(member); //중복회원검증
memberRepository.save(member);
return member.getId();
/*
+ ifPresent : null이 아니라 어떤 값이 있으면 로직 동작,
기존에는 if null이었지만 Optional로 감싸면 Optional 안에 있는 여러 객체 사용가능(null일 가능성있으면 사용)
result.ifPresent(m -> {
throw new IllegalStateException("이미 존재하는 회원입니다.");
});
*/
}
private void validateDuplicateMember(Member member) {
memberRepository.findByName(member.getName())
.ifPresent(member1 -> {
throw new IllegalStateException("이미 존재하는 회원입니다.");
});
}
//전체회원조회
public List<Member> findMembers(){
return memberRepository.findAll();
}
public Optional<Member> findOne(Long memberId){
return memberRepository.findById(memberId);
}
}
|
cs |