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

식빵님의 프로필 이미지
식빵

작성한 질문수

스프링 핵심 원리 - 고급편

프록시와 내부 호출 - 대안1 자기 자신 주입

target 인스턴스도 빈으로 등록은 되는 건가요?

해결된 질문

작성

·

386

3

강의를 재밌게 보고 있는데, 의문이 있어서 질문드립니다.

"대안1 자기 자신 주입" 강의 0:47 때 그림을 보여주시는데,

해당 그림에서는 target 인스턴스 내에서 proxy 를 의존성 주입 받아서 사용하는 걸로 표현됩니다.

여기서 의문이 들었습니다.

제 지식으로는 "스프링 빈으로 proxy 가 등록되고, target 은 빈으로 등록되지 않고, proxy 가 내부에서 참조만 한다"라고 알고 있습니다.(틀리다면 꼭 지적해주십쇼!)

그리고 또 한가지는 제가 알기로는 "의존성 주입을 위해서는 쓰는 쪽과, 받는 쪽 모두 빈으로 등록되어 있어야 한다."라는 것입니다.

이 두 가지 생각을 합치니 0:47 에 나오는 그림이 이상해 보였습니다.

그림 상에서는 빈으로 등록되지 않은 target 인스턴스가 의존성 주입을 받고 있는 걸로 보이거든요...

그림 처럼 되려면 target 인스턴스도 빈으로 등록이 되어야 하는데... 혹시 target 인스턴스도 빈으로 등록이 된건가요??

 

 

답변 1

5

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

안녕하세요. 식빵님

target 인스턴스는 빈으로 등록되지는 않지만 의존관계 주입은 받을 수 있습니다.

(빈으로 등로되는 것은 프록시이겠지요?)

스프링이 해당 객체를 생성하고, 의존관계 주입을 한 다음에 빈을 등록해야 하는데, 그때 target 인스턴스 대신 프록시가 빈으로 등록되는 것이지요.

물론 프록시가 있는 특수한 경우에만 이렇게 동작합니다.

감사합니다.

식빵님의 프로필 이미지
식빵
질문자

빈으로 등록되지 않지만 의존관계를 주입 받을 수가 있다는 전제가 생기니, 이해가 확 됩니다.

짧지만 핵심을 찌르는 답변 감사합니다 :)

식빵님의 프로필 이미지
식빵

작성한 질문수

질문하기