Cglib包实现动态代理

Cglib是一种子类代理,通过字节码技术动态创建目标对象的子类,实现方法拦截以扩展功能。使用时需引入Cglib库,注意目标方法不能是static或final,且目标类不能是final,否则无法代理。以下是Cglib代理的代码实现。
摘要由CSDN通过智能技术生成

Cglib代理模式基本介绍:
Cglib代理也叫子类代理,它是在内存中构建一个子类对象并对其目标方法进行拦截从而实现对目标对象功能扩展。使用Cglib代理需要引入Cglib jar包,Cglib包的底层是通过字节码处理框架ASM来转换字节码并生成新的类。
1)首先导入cglib jar包

在这里插入图片描述

2)注意,cglib代理的目标对象里要被增强的方法不能是static或者final的,如果是static或者final的则不会被拦截到,因为cglib是通过继承目标类实现方法增强,而static或者final的方法是不能被重写的也就不会执行增强的代码。
还有 cglib代理的目标类更不能是final的,否则会报错,因为不能被继承
在这里插入图片描述

3)cglib代码实现如下:

class TeacherDao {
   
    public  String teach() {
   
        System.out.println(" 老师授课中  , 我是cglib代理,不需要实现接口 ");
        return "hello";
    }
}

class ProxyFactory 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值