Сопоставление pointcut с конкретными аргументами

Весной я хочу выражение, которое соответствует методу с конкретными аргументами.

Прямо сейчас у меня есть это выражение

     execution(* delete(..))

Но я хочу сопоставить конкретные аргументы, поскольку в конкретном классе, который меня интересует, есть 4 метода удаления.

Я хочу что то подобное

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

Это то, что я написал и не работает. Я что-то пропустил?

2 ответа

Решение

Синтаксис выглядит правильно. Я полагаю, что вам не хватает закрывающей скобки.

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

Причина того, что это, вероятно, не так очевидно, заключается в том, что это является частью String вашей Pointcut аннотации (при условии, что вы используете подход на основе аннотаций), и поэтому, если выбранная вами IDE не проверяется Pointcut аннотации, это не бросит большой красный волнистый в вашем лице.

Я делаю это следующим образом:

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

Надеюсь, поможет.

Другие вопросы по тегам