Copy Code code as follows:
Import Java.lang.reflect.InvocationHandler;
Import Java.lang.reflect.Method;
Import Java.lang.reflect.Proxy;
public class Loghandler implements Invocationhandler {
Private Object delegate;
public object bind (object delegate) {
This.delegate = delegate;
Return Proxy.newproxyinstance (Delegate.getclass (). getClassLoader (),
Delegate.getclass (). Getinterfaces (), this);
}
@Override
public object invoke (object proxy, Method method, object[] args)
Throws Throwable {
Object result = null;
try {
System.out.println ("Method Start:" + methods);
result = Method.invoke (delegate, args);
System.out.println ("Method End:" + methods);
catch (Exception e) {
E.printstacktrace ();
}
return result;
}
}
Copy Code code as follows:
Public interface Animal {
public void Hello ();
}
As an extended form of proxy mode, dynamic Proxy is widely used in the design and development of framework (especially the framework based on AOP), this article will explain the implementation process of Java dynamic Proxy by example.
Copy Code code as follows:
public class Monkey implements Animal {
@Override
public void Hello () {
TODO auto-generated Method Stub
System.out.println ("Hello");
}
}
Copy Code code as follows:
public class Main {
public static void Main (string[] args) {
Loghandler Loghandler = new Loghandler ();
Animal Animal = (Animal) loghandler.bind (New Monkey ());
Animal.hello ();
}
}