Übereinstimmende Pointcuts mit spezifischen Argumenten
-
25-10-2019 - |
Frage
Im Frühjahr möchte ich einen Ausdruck, der einer Methode mit spezifischen Argumenten entspricht.
Im Moment habe ich diesen Ausdruck
execution(* delete(..))
Aber ich möchte bestimmte Argumente entsprechen, da in der jeweiligen Klasse, an denen ich interessiert bin, 4 Löschmethoden gibt.
Ich möchte so etwas
execution(* delete(com.xyz.A, com.xyz.B,java.lang.String )
Das habe ich geschrieben und funktioniert nicht. Vermisse ich etwas?
Lösung
Die Syntax sieht richtig aus. Ich glaube, Sie vermissen eine abschließende Klammer.
@Pointcut("execution(* delete(com.xyz.A, com.xyz.B,java.lang.String))")
Der Grund, warum es wahrscheinlich nicht so offensichtlich ist, ist, dass es ein Teil der ist String
von dir Pointcut
Annotation (vorausgesetzt, Sie verwenden den Annotationsansatz), und wenn Ihre Wahl der Wahl nicht bestätigt wird Pointcut
Annotationen, es wird kein großes rotes Schnörkel in Ihr Gesicht werfen.
Andere Tipps
Ich mache es auf folgende Weise:
@Pointcut("target(com.xyz.ClassName) && execution(* myMethod(com.xyz.A, com.xyz.B,java.lang.String))")
Ich hoffe es hilft.