Puntos de coincidencia con argumentos específicos
-
25-10-2019 - |
Pregunta
En primavera, quiero una expresión que coincida con un método con argumentos específicos.
Ahora mismo tengo esta expresión
execution(* delete(..))
Pero quiero hacer coincidir argumentos específicos ya que hay 4 métodos de eliminación en la clase particular que estoy interesado.
Quiero algo como esto
execution(* delete(com.xyz.A, com.xyz.B,java.lang.String )
Esto es lo que escribí y no está funcionando. Me estoy perdiendo de algo ?
Solución
La sintaxis se ve correcta. Creo que te estás perdiendo un paréntesis final.
@Pointcut("execution(* delete(com.xyz.A, com.xyz.B,java.lang.String))")
La razón por la que probablemente no sea tan obvio es que es parte del String
de tu Pointcut
anotación (suponiendo que esté utilizando el enfoque basado en anotaciones), por lo que si su IDE de elección no valida Pointcut
Anotaciones, no arrojará un gran rojizo en tu cara.
Otros consejos
Lo hago de la siguiente manera:
@Pointcut("target(com.xyz.ClassName) && execution(* myMethod(com.xyz.A, com.xyz.B,java.lang.String))")
Espero eso ayude.