РЕДАКТИРОВАТЬ:
Я думаю, что выражение pointcut, которое вы ищете, будет выглядеть примерно так:
@Around("@target(myPackage.SafetyCritical) && @annotation(denyPackage.Deny)")
@target
Обозначение * используется для сопоставления классов, помеченных данной аннотацией, а указатель @annotation
отфильтрует методы, аннотированные аннотацией denyPackage.Deny
.
Опять же, посмотрите на SpringБудет полезна документация, касающаяся поддержки AspectJ .
ORIGINAL:
Чтобы соответствовать любому количеству аргументов, определение параметров передается вexecution
обозначение точки резки должно быть '..'
@Around("execution(* myPackage.SafetyCritical.*(..)) && @annotation(deny)")
В документации Spring есть несколько примеров использования этого для обозначения принятия любого количества аргументов.
Кроме того, я бы рискнул предположить, что наличие символа «@» перед именем вашего пакета недопустимо.Вы должны удалить его.