반응형
회원 도메인과 리포지토리를 만들겠습니다.
폴더구조는 아래와 같이 하여 domain 패키지를 만들고 내부에 Member 클래스를 만들어줍니다. 그리고 repository 패키지를 만들어준 후 MemberRepository 인터페이스와 MemoryMemberRepository클래스를 만들어줍니다.
1. Member 클래스
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. MemberRepository 인터페이스
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);
Optional<Member> findByName(String name);
List<Member> findAll();
}
3. MemoryMemberRepository 클래스
package hello.hellospring.repository;
import hello.hellospring.domain.Member;
import java.util.*;
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());
}
public void clearStore(){
store.clear();
}
}
반응형
'Programming > Spring' 카테고리의 다른 글
Spring boot 시작하기 - 5강(Service) (0) | 2020.11.26 |
---|---|
Spring boot 시작하기 - 4강(테스트) (0) | 2020.11.25 |
Spring boot 시작하기 - 3강(파라미터 있는 MVC) (0) | 2020.11.23 |
Spring boot 시작하기 - 2강(MVC예) (0) | 2020.11.23 |
Spring boot 시작하기 - 1강 (0) | 2020.11.23 |
댓글