cglib代理

本文介绍了使用CGLIB实现动态代理的过程。通过创建ProxyFactory类并实现MethodInterceptor接口,可以为任意类生成代理对象。文章详细展示了如何利用Enhancer工具类设置父类和回调函数来创建子类代理,同时提供了拦截器的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * cglib代理 
 * @author csz
 *
 */
public class ProxyFactory implements MethodInterceptor {
    
     private  Object target;
     public ProxyFactory(Object target){
         this.target=target;
     }
    
     public Object getProxyInstance(){
         //1.工具类
         Enhancer enhancer = new Enhancer();
         //设置父类
         enhancer.setSuperclass(target.getClass());
         //设置回调函数
         enhancer.setCallback(this);
        //创建子类代理对象
         return enhancer.create();
        
     }

    @Override
    public Object intercept(Object arg0, Method method, Object[] args,
            MethodProxy arg3) throws Throwable {
        System.out.println("开启拦截。。开始事务。。");
        Object invoke = method.invoke(target, args);
        System.out.println("关闭拦截。。关闭事务");
        return invoke;
    }
    
    
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值