Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

프로그래밍 끄적끄적

[SpringBoot] 스프링 입문 - 회원 관리 예제(서비스) 본문

백엔드/스프링

[SpringBoot] 스프링 입문 - 회원 관리 예제(서비스)

soeunkk 2021. 7. 28. 14:31

서비스는 핵심 비즈니스 로직을 구현하는 부분으로 리포지토리보다 조금 더 비즈니스적인 용어로 작성한다.

 

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
public class MemberService {
    private final MemberRepository memberRepository = new MemoryMemberRepository();
 
    /**
     * 회원 가입
     */
    public Long join(Member member) {
        //메소드 추출 단축키: ctrl + alt + M
        //같은 이름이 있는 중복 회원 X
        validateDuplicateMember(member);    //중복 회원 검증
        memberRepository.save(member);
        return member.getId();
    }
 
    //이미 이름이 존재하면 throw 로 넘김
    private void validateDuplicateMember(Member member) {
        //변수 추출 단축키: ctrl + alt + V
        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

 

 

 

 

 

Comments