SSAFY11th-book-study / book-study

0 stars 0 forks source link

[6.4] MethodInnovation proceed() 함수 관련 질문 #63

Open a-young-kim opened 4 months ago

a-young-kim commented 4 months ago

P465 9A90CCAF-C331-4C07-B4BA-53E7F95FFB6C

MethodInnovation는 일종의 콜백 메소드로 proceed() 메소드가 실행되면 타깃 오브젝트의 메소드를 내부적으로 실행하는 주는 기능을 가지고 있다고 합니다. 저는 타겟 오브젝트에 하나 이상의 메소드가 존재할 것이라고 생각하여 어떻게 필요한 메소드를 proceed()를 통해 실행 시켜 줄 수 있는지에 대해 질문드립니다.

gmelon commented 3 months ago

정확하게는 모르겠지만, 동적으로 생성된 Proxy에 관련 코드가 존재하지 않을까 생각합니다.

MethodInvocation의 구현체인 ReflectiveMethodInvocation 의 생성자를 보면 Method를 받고 있는데,

image

아마도 Proxy의 각 메서드에서 타겟 메서드 정보를 얻고 해당 정보를 통해 MethodInvocation를 생성하고 MethodInterceptor의 인자로 넘겨주는게 아닐까 생각합니다.

limjongheok commented 3 months ago

추가적으로 자세히는 모르겠지만 image image 이런식으로 메소드를 추출해 사용하는 것 같습니다.