LogHandler.java 1003 B

123456789101112131415161718192021222324252627282930313233
  1. package J20250807.proxy.dynamicProxy.jdkDynamicProxy;
  2. import java.lang.reflect.InvocationHandler;
  3. import java.lang.reflect.Method;
  4. /**
  5. * @author WanJl
  6. * @version 1.0
  7. * @title LogHandler
  8. * @description
  9. * @create 2025/8/7
  10. */
  11. public class LogHandler implements InvocationHandler {
  12. //持有真实对象的引用
  13. private Object target;
  14. //通过构造方法传入这个真实对象
  15. public LogHandler(Object target) {
  16. this.target = target;
  17. }
  18. //实现的方法
  19. @Override
  20. public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
  21. //代理类添加的额外操作,方法执行前
  22. System.out.println("日志:方法"+method.getName()+"开始执行....");
  23. //调用真实对象的方法
  24. Object result = method.invoke(target, args);
  25. //代理类添加的额外操作,方法执行后
  26. System.out.println("日志:方法"+method.getName()+"执行完毕....");
  27. return result;
  28. }
  29. }