spring学习记录_动态代理


	spring学习记录_动态代理
[编程语言教程]

————恢复内容开始————

动态代理:

   特点:字节码随用随创建,随用随加载

   作用:不修改源码的基础上对方法增强

   分类:

       基于接口的动态代理

       基于子类的动态代理

 

   基于接口的动态代理:

       涉及的类:Proxy

       提供者:JDK官方

       如何创建代理对象:使用Proxy类中的newProxyInstance方法

       创建代理对象要求:被代理类最少实现了一个接口,如果没有则不能使用

        newProxyInstance参数:

            ClassLoader:类加载器

              作用:用于加载代理对象字节码。和被代理对象使用相同的类加载器。

              固定写法:xxx.getClass().getClassLoader()

            Class[]:字节码数组

              作用:用于让代理对象和被代理对象有相同方法。

              固定写法:xxx.getClass().getInterfaces()

            InvocationHandler:用于提供增强的代码

              作用:用于设置如何代理,一般是写一个该接口的实现类,通常情况下都是匿名内部类,但不是必须的,此接口实现类都是谁用谁写。

    一般都是写该接口的子接口实现类:MethodInterceptor

 技术图片

 

基于子类的动态代理:

   涉及的类:Enhancer

   提供者:第三方cglib库

   如何创建代理对象:使用PEnhancer类中的create方法

   创建代理对象要求:被代理类不能是最终类

   create参数:

      Class:字节码

       作用:用于指定被代理对象字节码

       固定写法:xxx.getClass()

      Callback:用于提供增强的代码

技术图片

 

spring学习记录_动态代理

原文地址:https://www.cnblogs.com/huangbf/p/13511015.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » spring学习记录_动态代理