动态代理主要有两种方式:
- JDK动态代理(Proxy)
- CGLIB代理
一、JDK动态代理
使用动态代理的五大步骤
1.通过实现InvocationHandler接口来自定义自己的InvocationHandler;
2.通过Proxy.getProxyClass获得动态代理类
3.通过反射机制获得代理类的构造方法,方法签名为getConstructor(InvocationHandler.class)
4.通过构造函数获得代理对象插入自定义的InvocationHandler实例对象传递为参数标注
5.通过代理对象调用目标方法
首先熟悉一下具体的流程
1、我们建有UserDao类,里面有两个方法,分别是addUser()与deleteUser(),接着我们建它的实现类UserDaoImpl,实现userDao里面的方法,添加输出语句模拟新增与删除,本例是对它的实现类进行增强处理;
2、新建切面类,模拟权限检查和记录日志,用在我们新增与删除地方(和普通的类一样,包含两个方法,只是我们把它理解为切面类,并且要这个类作为切面,织入我们要增强的类);
3、创建我们的代理类,通过实现InvocationHandler接口来自定义自己的InvocationHandler。
网友评论