Pergunta

In Spring, I want an expression that matches a method with specific arguments.

Right now I have this expression

     execution(* delete(..))

But I want to match specific arguments since there are 4 delete methods in the particular class I am interested in.

I want something like this

       execution(* delete(com.xyz.A, com.xyz.B,java.lang.String )

This is what I wrote and is not working. Am I missing something ?

Foi útil?

Solução

The syntax looks correct. I believe you are missing a closing parenthesis.

@Pointcut("execution(* delete(com.xyz.A, com.xyz.B,java.lang.String))")

The reason that it is probably not so obvious is that it is a part of the String of your Pointcut annotation (assuming you are using the annotation based approach), and so if your IDE of choice does not validate Pointcut annotations, it won't throw a big red squiggly in your face.

Outras dicas

I do it the following way:

@Pointcut("target(com.xyz.ClassName) && execution(* myMethod(com.xyz.A, com.xyz.B,java.lang.String))")

Hope it helps.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top