인프런 커뮤니티 질문&답변

kts327님의 프로필 이미지
kts327

작성한 질문수

스프링 핵심 원리 - 기본편

주문과 할인 도메인 실행과 테스트

영상 초반에 OrderApp 및 테스트 부분에서 질문 있습니다.

작성

·

340

9

초반에 OrderApp (및 테스트) 에서 궁금한게 있습니다.

1) MemberService의 구현체인 MemberServiceImpl 안의 MemberRepository

2) OrderService의 구현체인 OrderServiceImpl 안의 MemberRepository

1),2) 각각 다른 인스턴스의 MemberRepository를 가지는게 아닌가요? (new 연산으로 인해)

memberService.join(member)는 1)의 MemberRepository에 save되는 거고,

orderService.createOrder.createOrder()는 2)의

MemberRepository에서 member를 꺼내오는건데, member가 없으므로 npe가 나야하는게 아닌가 싶어서요!

(제가 강의 중간에 놓친게 있는건가요 ㅠㅠ)

답변 7

7

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. kts327님^^

MemoryMemberRepository를 잘 보시면 데이터 보관소를 static로 잡아두었습니다.

private static Map<Long, Member> store = new HashMap<>();

따라서 객체 생성과는 무관하게 동작합니다.

감사합니다.

2

npe 맛보고 static 이 빠진걸 발견했네요 ㅋㅋ 이 댓글덕에 또 배워갑니다

2

kts327님의 프로필 이미지
kts327
질문자

앗 static인걸 못봤네요 기초적인건데ㅜㅜ 전 객체 주입의 필요성을 위한 빌드업인줄 알았어요ㅋㅋ 답변 감사합니다

0

저도 해당 내용에 대해 궁금했었는데.. 덕분에 해결하였습니다. 감사합니다!

0

예제 따라치면서 static를 빼먹고 쳐서 npe 터져가지구 부랴부랴 static 추가했네요 ㅋㅋ

0

ㅋㅋㅋㅋㅋ저도....

0

와 저도 이게 왜그러지?? 이러다가 찾아봤는데 생각도 못했네요ㅋㅋㅋㅋ

kts327님의 프로필 이미지
kts327

작성한 질문수

질문하기