inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 핵심 원리 - 고급편

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

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

해결된 질문

461

식빵

작성한 질문수 56

3

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

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

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

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

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

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

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

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

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

 

 

spring 디자인-패턴

답변 1

6

김영한

안녕하세요. 식빵님

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

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

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

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

감사합니다.

1

식빵

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

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

SpringBoot 4.0.6 버전에서 PackageLogTracePostProcessor exception

0

36

2

어드바이스 순서 디폴트 기준이 궁금합니다.

0

63

1

AspectV1 예제를 @Configuration 수동 등록으로도 가능한가요?

0

94

2

구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?

0

65

1

TraceTemplate 을 미리 빈으로 등록해서 사용할때 이렇게 설정하는게 맞는건가요?

0

59

1

Decorator 에서 추상메서드로 뺄때 질문 있습니다.

0

59

1

대상 클래스에 기본 생성자가 없을 때

0

80

1

스프링 부트 버전 4.0 aop 의존성 명칭 변경

1

392

2

final 키워드 사용 관련 질문

0

82

1

안녕하세요

0

72

1

ThradLocal 실무 사례

0

102

2

실무에서의 동시성 문제

0

70

1

로그 등 부가 기능에 대한 테스트코드

0

56

1

ProceedingJoinPoint와 MethodInvocation에 대하여

0

72

1

실무 멀티스레딩에 대한 궁금증

0

75

1

안녕하세요 질문있습니다

0

47

1

AspectV3 aop 실행 순서 문의 드립니다

0

43

1

MDC vs AOP 중에 고민중입니다.

0

82

1

순환참조

0

165

2

this를 단독으로 사용할때랑 파라미터 바인딩 할때 차이

0

83

1

빈 후처리에 등록 질문 있습니다.

0

84

1

AppConfig 설정하는 설명중에 이해가 안되는게 있습니다.

0

97

1

ThreadLocal을 지역변수로 선언하면 remove가 필요할까요?

0

121

2

@Aspect 어노테이션으로 생성된 Advisor의 Bean 저장 여부

0

75

1