0 Tage Serie
java / intermediate
Snippet

Aspektorientierte Programmierung (AOP) zur Performance-Überwachung

AOP ermöglicht die Trennung von übergreifenden Belangen wie Logging oder Zeitmessung von der eigentlichen Geschäftslogik. Mit dem @Around-Advice können Sie Methodenaufrufe abfangen, Logik davor und danach ausführen und sogar den Rückgabewert ändern.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
@Aspect
@Component
public class ExecutionTimeAspect {
@Around("@annotation(LogExecutionTime)")
public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();
Object proceed = joinPoint.proceed();
long executionTime = System.currentTimeMillis() - start;
System.out.println(joinPoint.getSignature() + " executed in " + executionTime + "ms");
return proceed;
}
}
spring
Erklärung
1
@Around("@annotation(LogExecutionTime)")
Definiert einen Pointcut, der auf jede mit @LogExecutionTime annotierte Methode abzielt.
2
joinPoint.proceed()
Führt die eigentliche Methode aus, die abgefangen wurde.
3
joinPoint.getSignature()
Ruft Informationen über die aufgerufene Methode ab.