动态道理分为 cglib 和jdk 我们先看jdk public interface OrderService { /** *抽象的共同方法 */ void order() throws Throwable; }
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class JdkInvocationHandler implements InvocationHandler { /** * 被代理的对象 ,目标代理对象 */ private Object target; public JdkInvocationHandler(Object target) { this.target = target; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("---执行日志代码START"+proxy.getClass().toString()); Object result = method.invoke(target, args); System.out.println("---执行日志代码END"); return result; } /** * 使用jdk动态代理创建代理类 * * @param <T> * @return */ public <T> T getProxy() { return (T) Proxy.newProxyInstance(targe