질문&답변
"Prototype/프록시"로 설정했는데 동일한 객체로 나옵니다
감사합니다, 디버거를 완전히 잊고 있었네요... 덕분에 대부분의 의문이 풀렸습니다. 근데 디버거로 메서드 콜 스택을 따라가 보니까 의문이 들었던 게 있습니다. --- 먼저 operation과는 상관없이 class proxy instance(Prototype$$EnhancerBySpringCGLIB$$라고 출력된 것) 는 딱 1개만 생성되었습니다. origin target의 method 실행 시, origin target의 constructor를 실행하고 MethodInterceptor를 통해 CglibMethodInvocation을 실행하여 method를 invoke하는 걸로 파악했습니다. --- 제가 알고 있기론 class 기반 proxy는 target class를 상속받는 걸로 알고 있습니다. 정작 class proxy instance 는 하나밖에 생성되지 않고, target class의 constructor만 매 method 실행할 때마다 동작하더라고요. 상속을 받는다면 proxy instance가 여러 개여야 하는데 singleton인 게 이해가 안 갑니다. 혹시 Spring AOP에서는 class의 proxy가 아니라, method의 proxy를 생성해서 실행하는 건가요?
- 좋아요수
- 0
- 댓글수
- 4
- 조회수
- 545





