잊지 않겠습니다.

InvocationHandler

Java 2012. 9. 12. 00:00

JAVA와 .NET의 차이점을 볼때, 가장 특이한 점이라고 보이는 Interface.


Dynamic Proxy의 핵심 Interface이고, Proxy.newProxyInstance method를 통해서 기본적인 Dynamic Proxy 객체를 생성해주는 것이 가능하다.

코드는 다음과 같다.


Hello proxyHello = (Hello) Proxy.newProxyInstance(

                             getClass().getClassLoader(),

                             new Class[] { Hello.class },

                             new InvocationHandler(new HelloTarget()));


재미있어보이는 코드이고, 일단 Target의 Interface를 모두 상속받은 Proxy객체를 만들어준다는 것이 엄청나다는 느낌이 든다. 


물론. 이 코드를 바로 사용하는 일은 거의 존재하지를 않는다. 

Spring에서 제공하는 ProxyFactory를 이용해서, Dynamic Proxy를 구성하는 것이 일반적이기 때문이다. 

Posted by Y2K
,