1、代理
为其他对象提供一种代理以控制对这个对象的访问。简单的说就是当一个类实现一个功能之前或者之后需要做一些其他事务,例如权限检查等,为了代码的的易用性(一个类只实现一个功能)和方便测试。我们可以设置代理类来进行其他事务的处理。
2、静态代理的实现
1.先定义一个接口
2.定义一个主类,实现接口
3.定义一个代理类,
4.调用代理类实现全部业务
3、利用Java JDK实现动态代理
1.先定义一个接口
2.定义一个主类
3.利用代码自动生成代理类
4.调用代理类实现全部业务
4、利用Cglib实现动态代理
1.先定义一个子类,无须实现接口
2.利用Cglib实现代理类
3.调用代理类实现主要业务
5、利用JDK和Cglib实现动态代理的差异
1、JDK是使用映射机制实现,而Cglib是通过生成子类的方式实现
2、JDK必须实现接口实现,而Cglib只需要对类进行增强
3、Cglib是通过子类继承实现,对于主类的final方法就无法进行代理