Advisor의 빈 저장소 등록 시점이 빈 처러기의 대상이 될 객체의 빈 저장소 등록 시점 보다 어떻게 더 빠를 수 있나요?
539
작성한 질문수 1
1. 생성: 스프링이 스프링 빈 대상이 되는 객체를 생성한다. ( @Bean , 컴포넌트 스캔 모두 포함)
2. 전달: 생성된 객체를 빈 저장소에 등록하기 직전에 빈 후처리기에 전달한다.
3. 모든 Advisor 빈 조회: 자동 프록시 생성기 - 빈 후처리기는 스프링 컨테이너에서 모든 Advisor 를 조회한다.
4. 프록시 적용 대상 체크: 앞서 조회한 Advisor 에 포함되어 있는 포인트컷을 사용해서 해당 객체가 프록시를 적용할 대상인지 아닌지 판단한다. 이때 객체의 클래스 정보는 물론이고, 해당 객체의 모든 메서드를 포인트컷에 하나하나 모두 매칭해본다. 그래서 조건이 하나라도 만족하면 프록시 적용 대상이 된다. 예를 들어서 10개의 메서드 중에 하나만 포인트컷 조건에 만족해도 프록시 적용 대상이 된다.
제가 이해한 바로는
3.에서 스프링 컨테이너에 Advisor들은 이미 스프링 컨테이너에 등록 되어있는 것을 찾아오고 빈 후처리기에서 Advisor를 적용하여 프록시 객체를 생성할 target객체들은 생성만 되어있고 스프링 컨테이너에는 등록이 안되어 있는 것으로 이해했습니다. 이렇게 되려면 스프링이 Advisor를 구분해서 먼저 스프링 컨테이너에 등록 할 수 있어야 할 것 같은데 제가 제대로 생각하고 있는 것이 맞을까요?
답변 1
SpringBoot 4.0.6 버전에서 PackageLogTracePostProcessor exception
0
14
2
어드바이스 순서 디폴트 기준이 궁금합니다.
0
58
1
AspectV1 예제를 @Configuration 수동 등록으로도 가능한가요?
0
86
2
구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?
0
62
1
TraceTemplate 을 미리 빈으로 등록해서 사용할때 이렇게 설정하는게 맞는건가요?
0
56
1
Decorator 에서 추상메서드로 뺄때 질문 있습니다.
0
57
1
대상 클래스에 기본 생성자가 없을 때
0
79
1
스프링 부트 버전 4.0 aop 의존성 명칭 변경
1
391
2
final 키워드 사용 관련 질문
0
80
1
안녕하세요
0
69
1
ThradLocal 실무 사례
0
100
2
실무에서의 동시성 문제
0
67
1
로그 등 부가 기능에 대한 테스트코드
0
53
1
ProceedingJoinPoint와 MethodInvocation에 대하여
0
71
1
실무 멀티스레딩에 대한 궁금증
0
73
1
안녕하세요 질문있습니다
0
45
1
AspectV3 aop 실행 순서 문의 드립니다
0
40
1
MDC vs AOP 중에 고민중입니다.
0
77
1
순환참조
0
163
2
this를 단독으로 사용할때랑 파라미터 바인딩 할때 차이
0
80
1
빈 후처리에 등록 질문 있습니다.
0
82
1
AppConfig 설정하는 설명중에 이해가 안되는게 있습니다.
0
92
1
ThreadLocal을 지역변수로 선언하면 remove가 필요할까요?
0
118
2
@Aspect 어노테이션으로 생성된 Advisor의 Bean 저장 여부
0
72
1





