public class Calculator { public int add(int a, int b) { System.out.println("Adding " + a + " and " + b); int sum = a + b; System.out.println("Result: " + sum); return sum; } } public class LoggingAspect implements MethodInterceptor { public Object invoke(MethodInvocation methodInvocation) throws Throwable { System.out.println("Before: " + methodInvocation.getMethod().getName()); Object result = methodInvocation.proceed(); System.out.println("After: " + methodInvocation.getMethod().getName()); return result; } } public class Main { public static void main(String[] args) { Calculator calculator = new Calculator(); Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(Calculator.class); enhancer.setCallback(new LoggingAspect()); Calculator proxy = (Calculator) enhancer.create(); proxy.add(5, 10); } } <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.9.6</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>aopalliance</artifactId> <version>1.0</version> </dependency>


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