> 이전글 읽기
2022.02.22 - [:: System Log] - 스프링 입문 강의 노트 #8. 백엔드 개발 - 비즈니스 요구사항 정리
스프링 입문 강의 노트 #8. 백엔드 개발 - 비즈니스 요구사항 정리
> 이전 글 읽기 : 2022.02.21 - [:: System Log] - 스프링 입문 강의 노트 #7. 웹 개발 기초 - API 이전글 읽기 2022.02.21 - [:: System Log] - 스프링 입문 강의 노트 #6. 웹 개발 기초 - MVC와 템플릿 엔진 이..
everythingiok.tistory.com
회원 도메인과 리포지토리 만들기
1. 도메인을 위한 패키지 생성
- hello.helllospring.domain
- domain 패키지 내 member class 생성
package hello.hellospring.domain;
public class Member {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2. Repository 패키지 생성
- hello.helllospring.repository
- MemberRepository Interface 생성
package hello.hellospring.Repository;
import hello.hellospring.domain.Member;
import java.util.List;
import java.util.Optional;
public interface MemberRepository {
Member save(Member member); // 저장소에 멤버 저장
Optional<Member> findById(Long id); // 저장소에서 id로 고객 검색
Optional<Member> findByName(String name); // 저장소에서 이름으로 고객 검색
List<Member> findAll(); // 저장소에서 전체 목록 반환
}
*Optional // 널을 처리하는 방법. 옵셔널로 감싸서 반환할 수있음. 자바8에 있는 기능
- MemoryMemberRepository Class 생성
위에서 작성한 리포지토리 인터페이스 implements 하여 실제 구현
package hello.hellospring.Repository;
import hello.hellospring.domain.Member;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
public class MemoryMemberRepository implements MemberRepository {
private static Map<Long, Member> store = new HashMap<>();
private static long sequence = 0L;
@Override
public Member save(Member member) {
member.setId(++sequence);
store.put(member.getId(), member);
return member;
}
@Override
public Optional<Member> findById(Long id) {
return Optional.ofNullable(store.get(id));
}
@Override
public Optional<Member> findByName(String name) {
return store.values().stream()
.filter(member -> member.getName().equals(name))
.findAny();
}
@Override
public List<Member> findAll() {
return new ArrayList<>(store.values());
}
}
* 옵셔널로 널값을 감싸서 넘겨주면 클라이언트에서 처리가 가능하다
- 구현된 내용은 JUnit을 통해 테스팅 가능, 다음 강의에서 이어서 진행
> 다음글 읽기 :
2022.02.23 - [:: System Log] - 스프링 입문 강의 노트 #9. 백엔드 개발 - 회원 도메인과 리포지토리 만들기
스프링 입문 강의 노트 #9. 백엔드 개발 - 회원 도메인과 리포지토리 만들기
> 이전글 읽기 2022.02.22 - [:: System Log] - 스프링 입문 강의 노트 #8. 백엔드 개발 - 비즈니스 요구사항 정리 이전 글 읽기 : 2022.02.21 - [:: System Log] - 스프링 입문 강의 노트 #7. 웹 개발 기초 - API..
everythingiok.tistory.com
':: System Log' 카테고리의 다른 글
스프링 입문 강의 노트 #11. 백엔드 개발 - 회원 서비스 개발 (0) | 2022.02.25 |
---|---|
스프링 입문 강의 노트 #10. 백엔드 개발 - 리포지토리 구현체 테스트 (0) | 2022.02.23 |
스프링 입문 강의 노트 #8. 백엔드 개발 - 비즈니스 요구사항 정리 (0) | 2022.02.22 |
스프링 입문 강의 노트 #7. 웹 개발 기초 - API (0) | 2022.02.21 |
스프링 입문 강의 노트 #6. 웹 개발 기초 - MVC와 템플릿 엔진 (0) | 2022.02.21 |