public class Calculator { public int add(int a, int b) { return a + b; } } import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; public class LoggingAdvice implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { System.out.println("Before executing method: " + invocation.getMethod().getName()); Object result = invocation.proceed(); System.out.println("After executing method: " + invocation.getMethod().getName()); return result; } } import org.aopalliance.aop.Advice; import org.aopalliance.intercept.MethodInterceptor; import java.lang.reflect.Proxy; public class Main { public static void main(String[] args) { Calculator calculator = new Calculator(); Advice advice = new LoggingAdvice(); MethodInterceptor interceptor = (MethodInterceptor) advice; Calculator proxyCalculator = (Calculator) Proxy.newProxyInstance( calculator.getClass().getClassLoader(), calculator.getClass().getInterfaces(), interceptor ); int result = proxyCalculator.add(5, 3); System.out.println("Result: " + result); } } Before executing method: add After executing method: add Result: 8


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