2010-12-20 3 views
0

ich ein pointcut wie unten definiert:MethodInvocation gibt immer null aus pointcut Ausdruck

<aop:pointcut id="getAllDataCut" expression= 
    "execution(* com.example.test.getAllData(com.example test.User)) and args(usr)" /> 

Wenn ich

final Object[] methodArgs= methodInvocation.getArguements(); 

nenne ich bin immer immer null.

Bitte geben Sie einige Hinweise. Vielen Dank im Voraus

Antwort

0

Da Sie die Argumente der Methode gesendet kennen, können Sie sie als Parameter zu Ihrem Aspekt Methode erhalten:

public void aspect(JoinPoint joinPoint, com.example.test.User user) { 
    // DO SOME THING WITH user 
} 

wenn Sie Aspekt für Methoden mit verschiedenen Argumenten hinzufügen möchten, können Sie Entfernen Sie die Argumente aus dem Ausdruck

+0

Vielen Dank für Ihre Antwort, ist es notwendig, einen Aspekt zu definieren, samething mit Methode ohne Argumente arbeiten. Was ist das Problem mit der obigen Ausdruck mit den Argumenten. – user545520

+0

Der obige Ausdruck nimmt an, dass Ihre Aspect-Methode ein Benutzerargument wie das von mir angegebene verwendet. Sie können das Benutzerargument direkt anstelle von methodInvocation.getArguements() verwenden. – mmohab

+0

Hi Mohab, Danke für Ihre Antwort, aber ich möchte diesen Parameter durch Aufruf des method only.wenn ich auf der Grundlage dieses Arguments eine Variable während der Laufzeit konstruiere. – user545520

Verwandte Themen