Сопоставление 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))")
Надеюсь, поможет.