zoukankan      html  css  js  c++  java
  • java动态代理cglib详细说明

    CGLib,即code generation library,原理是通过动态生成类以实现代理的功能。AOP(面向切片编程)以及AOP的一种实现方法——Java Dynamic Proxy。需要注意的是,Java动态代理是面向接口的,即被代理的类必须实现某个接口,代理类以该接口的形式出现,而使用CGLib,则没有这方面的限制,任意一个类都是可以的。 简单的说,使用CGLib代理某个类,需要在Enhancer对象中设置好基类(也就是被代理类),以及一系列回调函数Callback。Callback是一个接口,CGLib提供了6个它的子接口: Callback子接口 用途(有待确认) Dispatcher 分发给其他Callback FixedValue 仅仅返回被代理类方法的返回值,对于限定某一些特定方法很有用(因为返回值必须和被代理类方法的返回值类型相匹配) InvocationHandler 主要用于Proxy(替代Java动态代理),也可以用户Enhancer LazyLoader 与Dispatcher类似,当代理类的第一个lazily-load方法调用时才会被调用 MethodInterceptor 普通用途的回调方法,在处理逻辑(advice)前后进行处理 NoOp 直接调用基类(被代理类)的方法调用 好,那我们来假设一个场景吧。 有这样一个类RealObject,它可以查询、保存资源,比如是这样:

    1  public class RealObject { 
    2 public void queryA () { System.out.println(“queryA”); } 
    3 public void queryB () { System.out.println(“queryB”); } 
    4 public void saveA () { System.out.println(“saveA”); } 
    5 public void saveB () { System.out.println(“saveB”); } 
    6 } […]
  • 相关阅读:
    【微信小程序】---线上环境搭建
    【vue】---项目接口管理---【巷子】
    【微信小程序】---授权登陆---【巷子】
    【react】---17新增的生命周期
    laravel 管道设计模式
    vim相关
    OAuth 2.0及微信网页授权
    linux下目录的读、写、执行权限辨析
    NIM游戏
    姿态角(欧拉角)yaw、pitch、roll语义解释
  • 原文地址:https://www.cnblogs.com/xuzhenmin/p/3295955.html
Copyright © 2011-2022 走看看