概念:在不改变原始类(被代理类)代码的情况下,通过引入代理类来替代对原始对象的访问,提供额外的功能操作,拓展目标功能。

主要作用是拓展目标对象的功能,比如在某个方法执行前后添加一些自定义的操作

静态代理

动态代理

JDK动态代理

cglib动态代理