<dependency> <groupId>org.beaninject</groupId> <artifactId>beaninject-core</artifactId> <version>1.0.0</version> </dependency> public class Logger { public void log(String methodName) { System.out.println("Executing method: " + methodName); } } @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Log { } public class LoggingAspect { @Before("@annotation(com.example.Log)") public void beforeMethod(JoinPoint joinPoint) { String methodName = joinPoint.getSignature().getName(); Logger logger = new Logger(); logger.log(methodName); } } public class App { public static void main(String[] args) { AspectContext aspectContext = new AnnotationAspectContext(); aspectContext.registerAspect(LoggingAspect.class); TargetObject targetObject = new TargetObject(); aspectContext.inject(targetObject); targetObject.method1(); targetObject.method2(); } } public class TargetObject { @Log public void method1() { System.out.println("Executing method1..."); } public void method2() { System.out.println("Executing method2..."); } } Executing method: method1 Executing method1... Executing method: method2 Executing method2...


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