1、什么是JDK动态代理
JDK动态代理是基于Java的反射机制实现的,使用jdk中的接口和类来实现代理对象的动态创建。被代理对象要实现接口。
2、Demo
(1)接口
public interface IService {
void addData();
}
(2)被代理对象
public class ServiceImpl implements IService {
@Override
public void addData() {
System.out.println("添加数据");
}
}
(3)实现InvocationHandler接口,实现invoke方法
public class MyInvocationHandler implements InvocationHandler {
private Object o; // 被代理对象
/**
*
* @param proxy 代理对象
* @param method 被代理方法
* @param args 被代理方法参数
* @return
* @throws Throwable
*/
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Object res;
System.out.println("开启事务");
res = method.invoke(o, args);