0 Tage Serie
java / expert
Snippet

Benutzerdefinierte AOP-Logik mit MethodInterceptor und ProxyFactory

Die direkte Verwendung der ProxyFactory ermöglicht eine manuelle AOP-Komposition, ohne auf Component-Scanning oder Annotationen angewiesen zu sein. Durch die Implementierung von MethodInterceptor erhalten Sie Zugriff auf die 'MethodInvocation', wodurch Sie Zielaufrufe dynamisch mit Querschnittsbelangen wie Performance-Monitoring oder Sicherheitsprüfungen umhüllen können.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
public <T> T createSecureProxy(T target) {
ProxyFactory factory = new ProxyFactory(target);
factory.addAdvice((MethodInterceptor) invocation -> {
long start = System.nanoTime();
try {
return invocation.proceed();
} finally {
System.out.println("Execution time: " + (System.nanoTime() - start));
}
});
return (T) factory.getProxy();
}
spring
Erklärung
1
ProxyFactory factory = new ProxyFactory(target);
Initialisiert eine Factory zum Erstellen eines JDK dynamischen Proxys oder CGLIB-Proxys für das Zielobjekt.
2
factory.addAdvice((MethodInterceptor) invocation -> { ... });
Fügt einen Interceptor hinzu, der Logik vor und nach dem eigentlichen Methodenaufruf ausführt.
3
return invocation.proceed();
Fährt mit dem nächsten Interceptor in der Kette oder der eigentlichen Zielmethode fort.