• jdk动态代理


    Java动态代理类位于java.lang.reflect包下,一般主要涉及以下两个类:
    (1)Interface InvocationHandler:该接口中仅定义了一个方法
             public object invoke(Object proxy,Method method,Object[] args)
    在实际使用时,第一个参数proxy一般是指代理类对象,method是被代理的方法,args为该方法的参数数组。这个抽象方法在代理类中动态实现。
     
    (2)Proxy:该类即为动态代理类
    static Object newProxyInstance(ClassLoader loader(目标类的类装载器),Class[] interfaces(目标类的接口),InvocationHandler h):返回代理类的一个实例,返回后的代理类可以当作被代理类使用(可以使用被代理类在接口中声明过的方法)。
     
    当客户端调用代理类对象的方法的时候,会调用invoke()回调方法,将其委派给目标对象,并在此基础上进行增强。
     
     
    jdk动态代理只能代理实现了接口的类,没有实现接口的类,不能实现jdk的动态代理。
     
     
     
    CGLIB动态代理:针对类来实现代理,对指定目标类产出一个子类,通过方法拦截技术拦截所有父类方法的调用,然后覆盖其中的方法,实现功能的增强。
  • 相关阅读:
    字符串案例1
    字符串1
    标准类制作
    构造方法
    封装
    成员变量和局部变量
    类和对象的案例

    案例
    方法的参数传递
  • 原文地址:https://www.cnblogs.com/james111/p/6607363.html
Copyright © 2020-2023  润新知