인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김상형님의 프로필 이미지
김상형

작성한 질문수

스프링 핵심 원리 - 고급편

JDK 동적 프록시 - 예제 코드

JDK 동적 프록시 호출 메서드 감지?

해결된 질문

작성

·

73

0

1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
proxy의 call을 호출한 후 어떻게 InvocationHandler.invoke() 를 호출하는 걸까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 김상형님.

JDK 동적 프록시에서 InvocationHandler.invoke()는 프록시 객체의 메서드가 호출될 때 자동으로 실행됩니다. 구체적으로 메커니즘은 다음과 같습니다:

  1. 동적 프록시 생성: Proxy.newProxyInstance() 메서드를 사용하여 프록시 객체를 생성합니다. 이때 인터페이스와 InvocationHandler 구현체를 전달합니다.

  2. 프록시의 메서드 호출: 프록시 객체의 메서드를 호출하면, 이 메서드 호출은 자동으로 InvocationHandler.invoke()로 위임됩니다.

  3. 메서드 정보 전달: invoke() 메서드는 세 개의 인자를 받습니다: (1) 프록시 객체 자신, (2) 호출된 메서드 객체, (3) 메서드에 전달된 인자 배열. 해당 정보는 invoke() 내부에서 메서드 로직을 결정하는 데 사용됩니다.

아래 유사한 질문들이 김상형님의 이해를 도울 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김상형님의 프로필 이미지
김상형
질문자

2번 과정의 위임 과정이 어떻게 일어나는지 까는 중요하지 않은 걸까요?

김상형님의 프로필 이미지
김상형
질문자

복습을 하다 보니 위임 과정이 리플랙션 파트에서 연습해본 과정처럼 이루어 질 것 이라는 생각이 들었습니다..!!

김상형님의 프로필 이미지
김상형

작성한 질문수

질문하기