학습자료
https://www.youtube.com/watch?v=0_oeeYDLSjM&list=PLumVmq_uRGHgBrimIp2-7MCnoPUskVMnd&index=9
https://www.youtube.com/watch?v=Gul8sv7cf8g&list=PLumVmq_uRGHgBrimIp2-7MCnoPUskVMnd&index=10
도메인 : 객체를 입력 출력 저장관리
레퍼지토리 : 저장소 (회원 도메인 저장하는 저장소)
인터페이스 제작 후 상속
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) { //이름 파라미터로 넘기며 저장 요청시 id 증가시키며 저장값 반환
member.setId(++sequence);
store.put(member.getId(),member);
return member;
}
@Override
public Optional<Member> findById(Long id) { //해당아이디 존재 체크 null 예외처리
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();
}
}
@Test
public void save(){
Member member =new Member();
member.setName("spring");
repository.save(member);
Member result =repository.findById(member.getId()).get();
// System.out.println("result="+(result==member));
Assertions.assertEquals(member,result);
//Assertions.assertThat(member).isEqualTo(result);
}
소스 검증 방법
result + true 가 나오거나 오류가 안나오면 정상
public void clearStore(){ //초기화
store.clear();
}
레퍼지 토리 초기화 함수 추가
package hello.hellospring.repository;
import hello.hellospring.domain.Member;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.List;
public class MemoryMemberRepositoryTest {
MemoryMemberRepository repository = new MemoryMemberRepository();
@AfterEach
public void afterEach(){
repository.clearStore();
}
@Test
public void save(){
Member member =new Member();
member.setName("spring");
repository.save(member);
Member result =repository.findById(member.getId()).get();
// System.out.println("result="+(result==member));
// Assertions.assertEquals(member,result);
//Assertions.assertThat(member).isEqualTo(result);
}
@Test
public void findByName(){
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2 = new Member();
member2.setName("spring2");
repository.save(member2);
Member result = repository.findByName("spring1").get();
Assertions.assertEquals(member1,result);
// Assertions.assertEquals(member2,result);
}
@Test
public void findAll(){
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2 = new Member();
member2.setName("spring2");
repository.save(member2);
List<Member> result = repository.findAll();
Assertions.assertEquals(result.size(),2);
}
}
'개발 > spring' 카테고리의 다른 글
회원 웹기능 홈 화면 추가 웹기능 등록 (0) | 2022.11.28 |
---|---|
spring 스프링 빈과 의존관계 1) 컴포넌트 스캔 (0) | 2022.11.28 |
window intelij 겟터 셋터 자동 만들기 getter and setter auto make (0) | 2022.11.25 |
spring api 데이터 받기 (0) | 2022.11.24 |
spring get데이터 받기 처리 (0) | 2022.11.24 |
댓글