import org.aopalliance.aop.Advice; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; public class LoggingAdvice implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { String methodName = invocation.getMethod().getName(); System.out.println("Entering " + methodName); Object result = invocation.proceed(); System.out.println("Exiting " + methodName); return result; } } public class Calculator { public int add(int num1, int num2) { return num1 + num2; } } public class Main { public static void main(String[] args) { ProxyFactory proxyFactory = new ProxyFactory(); proxyFactory.setTarget(new Calculator()); proxyFactory.addAdvice(new LoggingAdvice()); Calculator proxyCalculator = (Calculator) proxyFactory.getProxy(); System.out.println(proxyCalculator.add(5, 3)); } }


上一篇:
下一篇:
切换中文