Question

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 ?

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top