public class PlusHandler implements InvocationHandler { private Object o; public PlusHandler(Object o){ this.o = o; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("args..."+args[0]+" "+args[1]); Object result = method.invoke(o,args); System.out.println("result..."+result); return result; } public interface IService{ int add(int a, int b); } public static class IServiceImpl implements IService{ @Override public int add(int a, int b){ return a+b; } } public static void main(String[] args) { IService target = new IServiceImpl(); PlusHandler handler = new PlusHandler(target); IService proxy = (IService)Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), handler); proxy.add(1,2); } }
springboot2.0以后AOP默认为Cglib代理,jdk代理需要手动设置。