實現步驟:
1.新建生成動態代理對象類,實現java.lang.reflect.InvocationHandler接口。
2.新建一個方法用與生成代理對象并返回對象。
3.實現接口方法invoke,這也是切面處理的核心操作地。
-------上層接口
public interface Service {
void doService(String name);
}
-----接口實現
public class ServiceImpl implements Service{

@Override
public void doService(String name ) {
System.out.println("hello " + name);
}

}

-------實現InvocationHandler接口的類
public class ServiceDynamicProxy implements InvocationHandler {
private Object targetObject ;
//把要代理的類傳進去
public Object createProxy(Object targetObject){
this.targetObject = targetObject ;
return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),
targetObject.getClass().getInterfaces(), this);
}
//invoke方法會自動調用,切面處理
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
checkSecurity();
System.out.println(proxy.getClass().getName());
Object result = null ;
result = method.invoke(this.targetObject,args);
return result;
}
public void checkSecurity(){
System.o ut.println("check the security ");
}

}-------測試類
public class DynamicProxyClient {
public static void main(String[] args) {
ServiceDynamicProxy dynamicProxy = new ServiceDynamicProxy();
Service service = (Service)dynamicProxy.createProxy(new ServiceImpl());
service.doService("xuyiyu");
}
}

1.新建生成動態代理對象類,實現java.lang.reflect.InvocationHandler接口。
2.新建一個方法用與生成代理對象并返回對象。
3.實現接口方法invoke,這也是切面處理的核心操作地。
-------上層接口













-------實現InvocationHandler接口的類































