主要通过动态代理来增加 执行时间
1、新建代理
2、实现InvocationHandler
1、新建代理
2、实现InvocationHandler
//创建Client 代理
public class Client {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
UserService userService = new UserServiceImpl();
//newProxyInstance(自身服务代理类,服务接口,服务实现类)
UserService userServiceProxy = (UserService)Proxy.newProxyInstance(userService.getClass().getClassLoader(),
userService.getClass().getInterfaces(), new TimeHandler(userService));
//userServiceProxy.delete("11111");
//userServiceProxy.save("zhangsan", 10);
String retVal = userServiceProxy.find("555");
System.out.println(retVal);
}
}
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
//业务类实现InvocationHandler 也就是时间执行方法
public class TimeHandler implements InvocationHandler {
private Object targetObject;
public TimeHandler(Object targetObject) {
this.targetObject = targetObject;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
//开始时间执行
long startTime = System.currentTimeMillis();
Object retVal = method.invoke(targetObject, args);
System.out.println("执行时间:" + (System.currentTimeMillis() - startTime));
return retVal;
}
}