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

스프린이님의 프로필 이미지
스프린이

작성한 질문수

스프링 핵심 원리 - 기본편

조회한 빈이 모두 필요할 때, List, Map

빈 등록 안 된 상태에서 @Autowired사용

작성

·

415

3

강의 4:13초에 실행된 결과 값이 이해가 가지 않습니다. 저는 오류가 발생해야 된다고 생각합니다.

그 이유는 @Autowired가 생략된 것으로 @Autowired로 인해 의존 관계가 주입이 되어야 하는데 

new AnnotationConfigApplicationContext(); 인자 속에 DiscountService.class만 존재합니다. 그러면 DiscountService생성자의 매개변수 타입이 빈 등록이 안 되어 있어 주입해 줄 타입의 빈이 존재하지 않아 오류가 발생해야 한다고 생각하는데 오류가 왜 안 나는 것인가요?

감사합니다.

답변 1

4

안녕하세요. 스프린이님, 공식 서포터즈 David입니다.

스프링 컨테이너에서는 Map, List를 주입해줄 때 내부적으로 빈 Map, List를 먼저 만들고, 해당 타입을 가진 빈이 존재하면 Map, List에 추가한 다음 파라미터에 주입해줍니다.

따라서, 아무런 빈이 존재하지 않으면 빈 Map, List가 주입하게 되는 것이기 때문에 오류가 발생하지 않습니다.

감사합니다.

스프린이님의 프로필 이미지
스프린이

작성한 질문수

질문하기