Spring aop pointcut expression für den Zugriff auf die Methode return type
Ich habe eine Serviceschnittstelle mit vielen Methoden, die alle ein Request-Objekt nehmen und ein Response-Objekt zurückgeben. Alle Anforderungsobjekte haben einen gemeinsamen Vorfahren, und alle Antwortobjekte haben einen anderen gemeinsamen Vorfahren (der ein Erfolgskennzeichen und ein Nachrichtenfeld enthält).
Now Ich möchte einen Rundum-Aspekt haben, der Berechtigungen usw. überprüft, den Serviceabruf ausführt und ein Response-Objekt mit einem Fehlercode zurückgibt, wenn etwas fehlschlägt. Das Problem ist: Ich muss wissen, welche Art von Antwortobjekt erstellt werden soll. Gibt es einen Pointcut-Ausdruck, mit dem ich auf den Rückgabetyp zugreifen kann? So etwas vielleicht?
@Around(value = "execution(public *"
+ " com.mycompany.MyService+.*(..))"
+ " && args(request)"
+ " && returning( returnType)" // something like this would be nice
, argNames = "request,returnType")
public Object handleServiceCall(final ProceedingJoinPoint pjp,
final Request request,
final Class<? extends Response> returnType){ ... }