Time: 2024-05-16 Thursday 11:02:01
Author: Jackasher
JDK动态代理
代理主程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| @Test public void ProxyTest() throws InterruptedException { OrderServiceImpl target = new OrderServiceImpl();
MyinvokationHander myinvokationHander = new MyinvokationHander(target); OrderService orderService = (OrderService) Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), myinvokationHander);
orderService.detail(); orderService.modify(); orderService.generate();
}
|
InvocationHander
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| package org.example.sercice;
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method;
public class MyinvokationHander implements InvocationHandler {
private OrderService orderService;
public MyinvokationHander(OrderService orderService) { this.orderService = orderService; }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
long begin = System.currentTimeMillis(); Object value = method.invoke(orderService, args); long end = System.currentTimeMillis(); System.out.println("该方法用时:" + (end - begin) + "ms"); System.out.println(); return value; } }
|