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

이기정님의 프로필 이미지
이기정

작성한 질문수

스프링 핵심 원리 - 기본편

컴포넌트 스캔과 @Autowired

해결된 질문

작성

·

178

1

컴포넌트 스캔과 의존관계 자동 주입 시작하기 강의 부분입니다.

강의 자료를 보면 Autowired로 MemberRepository가 주입 되지도 않은 상태에서 스프링 빈에 인스턴스부터 등록되는 것을 봤습니다.

https://www.inflearn.com/questions/656720

이 분의 질문이 제 질문과 동일합니다.

 

로그를 봐도 인스턴스가 먼저 생성되고 @Autowired는 나중에 수행되던데,

인스턴스가 생성되려면 생성자를 통해야 하는데 유일한 생성자에 @Autowired가 달려 있고, 기본 생성자는 아예 없어서

어떻게 그게 가능한지 궁금합니다.

 

지금으로서는 ‘스프링이 어떻게든 되게 해주겠지’라고 생각하고 있는데, 이정도 의문은 그냥 넘어가도 된다면 된다고 해주셔도 좋을 것 같습니다.

 

+우연히 발견한 바로는 코드에서 @Autowired를 주석 처리해도 테스트가 정상 동작하던데 이것도 스프링이 알아서 해 주는 부분인가요?

답변 1

2

안녕하세요, 이기정 님! 공식 서포터즈 codesweaver 입니다.

자바의 '리플렉션' 을 검색하시면 원하시는 답을 얻으실 수 있어요.

리플렉션을 이용하면 어떤 생성자를 가지고 있는지, 생성자가 어떤 파라미터를 받는지, 메소드는 무엇이 있는지등을 알아낼 수 있는데요, 사실 이런 기능은 OOP 관점에서 말도 안되는 기능이라고 볼 수 있습니다.

그래서 이런 리플렉션을 현업에서 직접 구현할 기회는 거의 없고, 프레임워크를 만들게 되면 유용하게 이용하겠지요 :)

 

아래의 링크 설명도 참조 부탁드립니다.
https://velog.io/@yeon/Reflection%EC%9D%B4%EB%9E%80

감사합니다.

이기정님의 프로필 이미지
이기정

작성한 질문수

질문하기