[스프링] Proxy Factory, Dynamic Proxy, InvocationHandler

Seyeong·2023년 2월 2일
0

스프링

목록 보기
6/7

Dynamic Proxy

  • Dynamic Proxy는 Proxy Factory에 의해 Runtime시 만들어지는 오브젝트이다.

  • Proxy Factory에게 Interface 정보만 제공해주면 해당 Interface를 구현한 클래스의 오브젝트를 자동으로 만들어준다.

  • Dynamic Proxy가 Interface 구현 클래스의 오브젝트는 만들어주지만, Proxy로서 필요한 부가기능 제공 코드는 직접 작성해야 한다.

  • 부가기능은 Proxy 오브젝트와 독립적으로 InvocationHandler를 구현한 오브젝트에 담는다.

  • InvocationHandler Interface는 다음과 같은 메소드 한 개만 가졌다.
    public Object invoke(Object proxy, Method method, Object[] args);

즉, Proxy Factory에게 어떠한 Interface를 제공하면 모든 메서드가 구현된 Dynamic Proxy 오브젝트를 생성해주고, 여기에 InvocationHandler Interface를 구현한 오브젝트를 제공해주면 DynamicProxy가 받는 모든 요청을 InvocationHandler#invoke( ) 메소드로 보내준다.


0개의 댓글