* 인프런 김영한님의 '스프링 입문' 강의를 듣고 작성한 내용입니다! (https://inf.run/txXC)
서비스 : 핵심 비즈니스 로직 구현 (name은 중복이 안되고,...)
회원 서비스 개발
1. hello.hellospring/service (package생성)
2. service/MemberService.java (java 파일 생성)
[MemberService.java 소스코드]
- Repository로 MemoryRepository 객체 사용
- 회원가입시 name이 중복되면 안되므로 validateDuplicateMember 함수를 만들어준다
회원 서비스 테스트
- repository 테스트 케이스 작성 시 일일히 코드를 쳤지만, test할 class에서 ctrl + shift + T 단축키로 Test를 생성할 수 있다
- 이전에 MemberService.java 소스코드에서 회원 서비스가 회원 repository를 직접 생성했다
-
priavate final MemberRepository memberRepository = new MemmoryMemberRepository();
- 회원 서비스 코드에서 DI(Dependency Injection) 를 가능하게 변경한다
-
private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; }
=> 왜 DI가 가능하게 만들어주는가? Test 코드를 짤 때 각 테스트마다 repository 객체를 생성하므로 서로 다른 DB가 생성되게 된다. 따라서 같은 객체를 쓰게 하기 위해 contructor로 생성해서 repository를 외부에서 넣어줄 수 있도록 한다.
[MemberServiceTest.java 소스코드]
'개발 > Spring' 카테고리의 다른 글
[스프링 입문] 스프링 회원관리 예제 - 6. 웹 MVC 개발 (0) | 2021.06.30 |
---|---|
[스프링 입문] 스프링 회원관리 예제 - 5. 스프링 빈과 의존관계 (0) | 2021.06.30 |
[스프링 입문] 스프링 회원관리 예제 - 3. 회원 레포지토리 테스트 케이스 작성 (0) | 2021.06.29 |
[스프링 입문] 스프링 회원관리 예제 - 2. 회원 도메인, 레포지토리 만들기 (0) | 2021.06.29 |
[스프링 입문] 스프링 회원관리 예제 - 1. 비즈니스 요구사항 정리 (0) | 2021.06.29 |