inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 핵심 원리 - 고급편

@Aspect 프록시 - 적용

프록시의 생성시점, 빈등록 시점 질문입니다.

465

myj4513

작성한 질문수 3

0

안녕하세요 김영한님.

이번 강의를 듣던중 프록시 생성시점에 대해 이해가 안가는 부분이 있어 질문 드립니다.

다이내믹 프록시는 런타임 시점에 동적으로 프록시를 생성한다고 하셔서, 저는 실제 메서드가 호출되는 시점까지 프록시의 생성을 미루다가 호출이 됐을 때 프록시가 생성이 되고 빈으로 등록 되는거라고 이해를 했었습니다.

하지만 이전 강의에서 어드바이저를 빈으로 등록하고 로그를 출력했을 때 처음 스프링이 실행되면서 모든 스프링 빈을 포인트 컷을 통해 확인하고 적용대상은 프록시로 빈을 등록했던 것 같습니다. 

저는 동적이라는 개념 자체가 호출시점(런타임)에 생성되는 거라고 이해했는데, 스프링이 처음실행될 때 프록시가 자동으로 생성되는 것도 `동적` 이라고 표현하는 건가요? 

디자인-패턴 spring

답변 1

6

김영한

안녕하세요. myj4513님

먼저 동적이라는 것은 문맥에 따라 다르게 사용될 수 있습니다. 스프링이 처음 실행될 때 프록시가 자동 생성되는 것도 동적 프록시의 동적을 뜻합니다. 우리가 지금까지 예제에서 동적 프록시 기술을 사용했던 부분이 스프링 빈 등록 시점인 것을 떠올리시면 됩니다.

정리하면 다음과 같습니다.

1. 프록시 생성을 시점: 스프링을 실행하면 스프링 컨테이너와 스프링 빈을 등록하는 시점에 프록시를 생성해서 스프링 빈으로 등록해야 한다. 이 시점에 포인트 컷을 확인해서 프록시를 생성한다.

2. 실행 시점: 프록시에서 해당 메서드가 포인트 컷에 매칭되는지 확인하기 위해 포인트 컷을 확인한다.

감사합니다.

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

0

52

1

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

0

79

2

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

0

56

1

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

0

53

1

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

0

56

1

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

0

75

1

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

1

356

2

final 키워드 사용 관련 질문

0

77

1

안녕하세요

0

64

1

ThradLocal 실무 사례

0

97

2

실무에서의 동시성 문제

0

62

1

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

0

50

1

ProceedingJoinPoint와 MethodInvocation에 대하여

0

67

1

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

0

69

1

안녕하세요 질문있습니다

0

44

1

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

0

38

1

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

0

75

1

순환참조

0

161

2

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

0

77

1

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

0

76

1

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

0

89

1

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

0

117

2

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

0

68

1

ThreadLocal 사용시 부작용이 있을수 있을까요? (ThreadLocal.remove()를 잘한다고 해도..)

0

73

2