zoukankan      html  css  js  c++  java
  • 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动态代理:针对类来实现代理,对指定目标类产出一个子类,通过方法拦截技术拦截所有父类方法的调用,然后覆盖其中的方法,实现功能的增强。
  • 相关阅读:
    Configuration Management
    Android Hooking
    技术趋势总结
    Maven Repo Mirror
    拥抱JAVA
    NPM 更新所有依赖项
    Knockout Mvc Compoment FrameSet With Typescript
    Knockoutjs Component问题汇总
    前端编码规范文档
    优秀程序设计的18大原则
  • 原文地址:https://www.cnblogs.com/james111/p/6607363.html
Copyright © 2011-2022 走看看