spring aop 用到动态代理
public interface Animal { void say(); }
public class Person implements Animal { @Override public void say() { System.out.println("=====hello"); } }
public class PersionProxy implements InvocationHandler { private Person person; public PersionProxy(Person person){ this.person = person; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("test proxy"); System.out.println("method:"+method); method.invoke(person); System.out.println("end===="); return null; } }
public class Main { public static void main(String[] args) { Person person = new Person(); PersionProxy handler = new PersionProxy(person); Animal animal = (Animal) Proxy.newProxyInstance(Person.class.getClassLoader(), new Class[] {Animal.class}, handler); animal.say(); } }