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
1
2
3
4
5
6
7
8
9
10
11
12
@Aspect@Componentpublic 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.