Выражение Spring AOP pointcut по имени аргумента - PullRequest
1 голос
/ 06 ноября 2019

Возможно ли совпадение выражений pointcut на основе имени аргумента метода?

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

public Employee findById(Integer employeeId);

Я не могу сопоставить по типу данных, потому что он будет слишком широким.

Я знаю, что могу использовать подстановочные знаки, чтобы сопоставить что угодно, например "execution(* * (..))" и проверить имя аргумента в теле метода, но это кажетсяизлишняя

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

NO. Вы не можете соответствовать на основе имен аргументов;но можно сопоставить по типам аргументов arg. Чтобы решить вашу проблему, вы можете использовать выражение ближайшей точки, чтобы поймать целевые методы, а затем фильтровать эти методы программно в вашем аспекте.

0 голосов
/ 07 ноября 2019

Вырезание точек на основе имени аргумента не поддерживается в Spring AOP.

Здесь перечислены поддерживаемые указатели срезов точек: Поддерживаемые указатели срезов точек

...