import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class ProxyFactory implements InvocationHandler {
private Object object;
public ProxyFactory(Object object) {
this.object = object;
}
public Object getObject() {
return Proxy.newProxyInstance(this.getClass().getClassLoader(),
object.getClass().getInterfaces(), this);
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
//做一些预处理工作,如字符格式转换,数据验证等等
System.out.println("开始事务");
Object o = method.invoke(object, args);
//做一些事后处理工作,如关闭资源
System.out.println("事务结束");
return o;
}
}
缺点传入对象必须是实现类
public class UsersServiceImpl implements UsersService {
public void save() {
System.out.println("保存