본문 바로가기
Java | Spring/Spring 입문

[스프링 입문] 3.2 회원 도메인과 리포지토리 만들기

by 동기 2021. 9. 27.
반응형

순서


3.2 회원 도메인과 리포지토리 만들기

  domain 패키지와 Member 클래스 (회원 객체) /

repository 패키지와 MemberRepository 인터페이스 (회원객체 저장을 위한것),  MemoryMemberRepository 클래스를 생성하자

 

 

  Member 클래스 ( 고유 id 값과 회원이름만 가지고 있는 Member Class 이다. )

 

 

  MemberRepository 인터페이스

 

Optional은 java8에서 추가된 기능으로써, findById 나 findByName 등으로 회원의 정보를 가져왔을때, 정보가 null 일 수가 있는데, 이 null을 처리하는데 있어서 null을 그대로 반환하는대신 Optional을 이용하여 한번 감싸준 후 반환하는 방식을 많이 쓴다.

 

  MemberRepository 인터페이스의 구현체인 MemoryMemberRepositry클래스를 작성하자

멤버 id 와 멤버 객체를 저장하는 store Map 과, id를 나타내는 sequence를 작성한다. ( 실무에서는 동시성 문제를 고려하여 더 엄격한 형태로 한다.)

save()는 회원정보를 store Map에 저장후 member를 반환한다.

 

findById() 는 인자로 받은 id와 일치하는 값을 store Map 에서 꺼내어 반환한다.

이 때, 결과가 없을 경우 null 값이 올 수 있는데, Optional.ofNullable()로 감싸주면, null이어도 반환하여 (클라이어단에서) 조치를 할 수 있다.

 

findByName() 은 filter내의 람다식을 통해, 인자로 받은 name 과 member.getName()이 일치하는지 비교 후 일치하는게 있다면 반환한다.

(루프를 돌면서 하나가 찾아지면 반환, 하나도 못찾는다면 optional에 null이 포함되어 반환된다. )

 

findAll() 은 store에 있는 모든 member들을 반환한다.

 

다음 시간에는 이 작성한 클래스가 제대로 동작하는지 확인하기 위해, 테스트 케이스를 작성해 보자!


 

 

반응형

댓글