JDK代理和Cglib
概念 首先需要描述一下代理模式的概念,什么是代理模式: 代理模式就是在访问对象时引入一定的间接性。 比如不直接调用实际对象的方法,这样在这个代理的过程中我们就可以加上一些其他的用途。 静态代理和动态代理 动态代理和静态代理的区别很大,静态代理的类是我们自己定义好的,在程序运行之间就已经变异完成,但是动态代理是我们在程序运行时创建的。 动态代理的优势在于我们可以很方便的对代理类的函数进行统一处理,而不用修改每个代理类中的方法。 网上有一段很好理解的代码片段: public class StuInvocationHandler<T> implements InvocationHandler { //invocationHandler持有的被代理对象 T target; public StuInvocationHandler(T target) { this.target = target; } /** * proxy:代表动态代理对象 * method:代表正在执行的方法 * args:代表调用目标方法时传入的实参 */ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("代理执行" +method.getName() + "方法"