프로그래밍 끄적끄적
[SpringBoot] 스프링 입문 - 회원 관리 예제(서비스) 본문
서비스는 핵심 비즈니스 로직을 구현하는 부분으로 리포지토리보다 조금 더 비즈니스적인 용어로 작성한다.
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 |
'백엔드 > 스프링' 카테고리의 다른 글
스프링 입문 - 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2021.07.29 |
---|---|
[SpringBoot] 스프링 입문 - 회원 관리 예제(서비스 테스트) (0) | 2021.07.28 |
[SpringBoot] 스프링 입문 - 회원 관리 예제(테스트 케이스 작성-리포지토리 테스트) (0) | 2021.07.28 |
[SpringBoot] 스프링 입문 - 회원 관리 예제(비즈니스 요구사항 정리, 도메인, 리포지토리) (0) | 2021.07.28 |
[SpringBoot] 스프링 입문 - 스프링 웹 개발 기초(정적 컨텐츠, MVC, 템플릿 엔진, API) (0) | 2021.07.25 |
Comments