1. 概述
上一篇文章主要讲述了Tuscany SCA的插件板模式及工厂模式的发展和提升,本文主要介绍Tuscany SCA开源软件中动态代理模式(Dynamic Proxy)及方法调用Invocation 。在使用Tuscany SCA中,我们只需要写接口及实现类,这些接口和实现类就是普通的java代码,并没有特殊之处。Tuscany SCA会根据“.composite”文件把这些信息组装成Compoiste,至于如何组装,则是Tuscany SCA的Assembly模块的主要内容,我以后会介绍,但现在的问题是,如何来实现调用这些类的方法的问题,因为当调用的时候,外部接口是Tuscany SCA的Domain,Domain依赖的Runtime中就加载有Composite的内容,客户的逻辑在应用程序(即interface, implementClass),但这些都被组装进入了Composite中,所以要使用动态代理模式来实现,使得侵入性最小。
2. Java动态代理基础知识
Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类:InvocationHandler和Proxy。
InvocationHandler必须被实现,实现这个接口的invoke(Object obj,Method method, Object[] args),第一个参数obj一般是指代理类,method是被代理的方法, args为该方法的参数数组。这个invoke方法的内容主要是在调用被代理的方法前后方便地加上你自己的逻辑,如下例子......更多内容查看》

