2012-10-01 3 views
0

cglib 프록시는 대상 클래스를 서브 클래 싱하고 대상 클래스의 메소드를 오버라이드하여 작동합니다.JDK 동적 프록시

동적 프록시가 작동하는 방법을 정확히 알 수 있습니까? 프록시를위한 인터페이스를 사용한다는 것은 알고 있지만, 메소드 호출은 프록시를 통해 어떻게 발생합니까?

+0

이 링크는 프록시에 대한 좋은 설명을 제공합니다. http://blog.frankel.ch/tag/proxy – deepakraut

답변

1

Proxy.newProxyInstance()을 사용하면 필요한 인터페이스를 구현하는 프록시를 요청할 수 있습니다. 프록시 메서드를 호출 할 때마다 호출되는 InvocationHandler도 전달해야합니다. 그런 다음 처리기에서 호출되는 메서드와 해당 매개 변수를 알 수 있으므로 대상 개체 사용을 포함하여 원하는 작업을 수행 할 수 있습니다.

Java는 어떻게 처리합니까? 기본적으로 내부적으로는 reflection의 내부 기능과 많은 기본 기능이 있습니다. 따라서 일반 Java를 사용하여이 동작을 에뮬레이트 할 수 있습니다.

확장 정보 here.