通过代理控制对象的访问,可以在这个对象调用方法之前、调用方法之后去处理/添加新的功能。
场景:
1、过滤器
2、日志打印
3、异常处理
4、事务控制
5、全局流水
静态代理:需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类.
动态代理-JDK代理:代理对象不需要实现接口,但是目标对象一定要实现接口(使用反射,因为Java是单继承的,而代理类又必须继承自Proxy类,所以通过jdk代理的类必须实现接口)
动态代理-cglib代理:无需实现接口(使用反射)使用字节码技术,不能对 final类进行继承
文章介绍了代理模式在访问控制中的应用,如过滤、日志、异常处理、事务和全局流水。静态代理需定义接口或父类,而JDK动态代理要求目标对象实现接口。CGlib动态代理则无需接口,利用字节码技术实现,但无法代理final类。
862

被折叠的 条评论
为什么被折叠?



