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

ffbear님의 프로필 이미지
ffbear

작성한 질문수

스프링 핵심 원리 - 기본편

다양한 의존관계 주입 방법

의존성 주입에 대한 질문입니다.

작성

·

244

0

1. 

강의 3분 ~ 3분 30초에서 생성자를 통한 의존관계 주입을 설명하는 부분에서 딱 1번만 호출되고 불변한다고 하셨는데 그렇다면 그 1번의 시점은 스프링 컨테이너에 등록되는 시점이라고 봐도 되는걸까요?

2. 

강의 21분 30 ~ 22분에서 필드 주입에 대해서 말씀하신 부분에 대해서 왜 OrderServiceImpl 에 파라미터가 있는 생성자가 있으면 OrderServiceImplTest 의 fieldInjectionTest 에서 오류가 나는지 궁금합니다. 

3. 
강의 21분 44초에서 왜 OrderServiceImplTest 에서 NPE 에러가 뜨는지 궁급합니다. 
 
 

답변 1

0

안녕하세요. ffbear님, 공식 서포터즈 David입니다.

1. 강의 3분 ~ 3분 30초에서 생성자를 통한 의존관계 주입을 설명하는 부분에서 딱 1번만 호출되고 불변한다고 하셨는데 그렇다면 그 1번의 시점은 스프링 컨테이너에 등록되는 시점이라고 봐도 되는걸까요?

=> 네, 맞습니다. OrderServiceImpl이 생성되는 시점입니다.

2. 강의 21분 30 ~ 22분에서 필드 주입에 대해서 말씀하신 부분에 대해서 왜 OrderServiceImpl 에 파라미터가 있는 생성자가 있으면 OrderServiceImplTest 의 fieldInjectionTest 에서 오류가 나는지 궁금합니다. 

=> 3번에서 함께 설명해드리겠습니다.

3. 강의 21분 44초에서 왜 OrderServiceImplTest 에서 NPE 에러가 뜨는지 궁급합니다. 

=> OrderServiceImpl은 필드주입을 받고 있습니다. 스프링 컨테이너를 이용하지 않고 기본 생성자를 사용하여 OrderServiceImpl을 만들면 스프링 컨테이너로부터 필드 주입을 받아야 하는 memberRepository, discountPolicy는 아무것도 할당받지 않은 상태입니다.

이 상태에서 memberRepository에 접근하여 메서드를 호출하니 NPE가 터지는 것입니다.

 

감사합니다.

ffbear님의 프로필 이미지
ffbear

작성한 질문수

질문하기