0 Tage Serie
java / intermediate
Snippet

Implementierung von querschnittlichen Belangen mit @Aspect

Aspektorientierte Programmierung (AOP) ermöglicht es, querschnittliche Belange wie Protokollierung, Auditierung oder Sicherheit von der Hauptgeschäftslogik zu trennen. Das @Around-Advice fängt die Methodenausführung ab, um Logik davor und danach auszuführen.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
@Aspect
@Component
public class PerformanceLoggingAspect {
@Around("execution(* com.example.service.*.*(..))")
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("execution(...)")
Definiert einen Pointcut, der angibt, welche Methoden von diesem Aspekt abgefangen werden sollen.
2
ProceedingJoinPoint
Ermöglicht dem Aspekt, den Ablauf zu steuern und die Zielmethode tatsächlich auszuführen.
3
joinPoint.proceed()
Löst die Ausführung der eigentlichen Methode aus, die abgefangen wird.