创建目标接口 public interface TragetInterface{ public void save(); } 创建实现类,实现接口 public class Trage implements TragetInterface{ public void save(){ System.out.println("save running..."); } } 创建增强 public class Advice{ public void before(){ System.out.pringln("前置增强。。。"); } public void afterReturning(){ System.out.println("后置增强。。。"); } } 创建测试类 public class ProxyTest{ public static void main(String[] args){ //目标对象 final Target target=new Target(); //增强对象 Advice advice=new Advice(); //返回值,就是动态生成的代理对象 TargetInterface proxy=(TargetInterface )Proxy.newProxyInstance( target.getClass().getClassLoader(),//目标对象加载器 target.getClass().getInterfaces(),//目标类对象相同的接口字节码对象数组 new InvocationHandler(){ //调用代理对象的任何方法,实质执行的是invoke方法 public Object invoke(Object proxy,Method method,Object[] args) throws Throws{ advice.before();//前置增强 Object invoke=method.invoke(target,args);//执行目标方法 advice.afterReturning();//后置增强 return invoke; } } ); //调用代理对象的方法 proxy.save();