OrderApp의 orderService와 memberService 내의 MemberRepository가 독립된 오브젝트가 아닌가요?
232
작성한 질문수 5
안녕하세요.
강의를 듣던 중, 코드를 그대로 따라했는데 OrderApp에서 MemberNullPointerException이 나와서 추적하던 중, 주문서비스와 회원서비스의 레퍼지토리가 따로따로인 것 같아서 생기는 오류라고 추측되어 질문드립니다 !
Me
public class AppConfig {
public MemberService memberService(){
return new MemberServiceImpl(new MemoryMemberRepository());
}
public OrderService orderService(){
return new OrderServiceImpl(new MemoryMemberRepository(), new FixDiscountPolicy());
}
}
상단은 AppConfig입니다.
각 회원 서비스와 멤버 서비스의 매개변수에는 new MemoryMemberRepository()로 되어있는데.. 각 새로운 인스턴스를 생성해서 생기는 오류인 것 같아서요.
public class OrderApp {
public static void main(String[] args) {
AppConfig appConfig = new AppConfig();
MemberService memberService = appConfig.memberService();
OrderService orderService = appConfig.orderService();
long memberId = 1L;
Member member = new Member(memberId, "memberA", Grade.VIP);
memberService.join(member);
Member findMember = memberService.findMember(1L);
System.out.println("new Member = " + member.getName());
System.out.println("find Member = " + findMember.getName());
System.out.println("find Member id = " + findMember.getId());
// Order order = orderService.createOrder(memberId, "itemA", 10000);
//
// System.out.println("order = " + order);
}
}
상단의 memberService 내의 findMember(1L)를 확인하기 위해 OrderApp을 돌려보면 findMember의 값이 잘 나옵니다. 그런데, orderService 내의 memberRepository를 참조하면 nullPointerException 오류가 납니다. 각 다른 저장소라 그런 것으로 보이는데 강의에서는 잘 돌아가는게 제가 모르는 부분이 어떤건지 싶네요..(제 환경에서는 돌아가지 않고 pdf를 그대로 복사붙여넣기 했는데 왜 그런가 싶네요.)
답변 2
3
해결 되었습니다 ..! ㅠ
다른 수강생과 같은 이유였군요.
혹시나 같은 문제이신 분 있으실까봐 도움 되시라고 올립니다 !
hello.core.member.MemoryMemberRepository;
의 Hash Map이 static인지 보시면 될 것 같아요.
정적 변수이기에 데이터를 서로 공유가 가능하며, 위의 질문에 대한 문제가 해결 됩니다 !
private static Map<Long, Member> store = new HashMap<>();
구현체가 동적으로 정해질 때, 팩토리 기법을 사용하나요?
0
47
2
MemberService의 인터페이스를 왜 사용하는지 궁금합니다.
0
72
1
롬복 @Setter를 써야 하는 상황이 있는건가요?
0
87
1
빈 등록 메서드의 파라미터가 빈이 아니어도 되나요?
0
79
1
테스트 속도가 나중에 영향이 있을까요?
0
75
1
gradle 설정 안떠서 질문 남깁니다!
0
116
2
build.gradle로 프로젝트를 여는 이유
0
81
1
provider 사용하는 이유
0
85
1
다음 강의 뭘 들어야 할까요
0
123
2
프로토타입 빈, 직접 destroy 호출 안 할 경우
0
62
1
beanB
0
79
2
퀴즈다시풀기
0
63
1
Gradle로 바꿔도 오류가 똑같이 발생하네요 ㅠㅠ
0
90
2
"중복 등록과 충돌" 강의에서 강사님과 다른 에러가 발생합니다.
0
63
3
run 실행했는데 결과창이 이렇게 뜨네요 왜 그런건가요>
0
102
2
도메인의 정의?
0
57
1
ApplicationContext 질문입니다.
0
60
1
@Scope의 proxyMode를 사용할때 단위 테스트 방법
0
86
2
ai api 선정하기 관련 질문
0
115
2
생성자 자동주입 관련해서
0
60
1
생성자 직접 호출 vs 팩토리 메서드 패턴
0
93
2
Spring에서 SessionScope와 RequestScope는 함께 사용되나요?
1
63
1
12:25
0
74
2
appConfig.xml 오류
0
124
1





