Matching pointcuts with specific arguments

772 views Asked by At

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 ?

2

There are 2 answers

2
nicholas.hauschild On BEST ANSWER

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.

0
danny.lesnik On

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.