Сообщение об ошибке formal unbound in pointcut
сообщает вам, что формальный параметр, используемый в вашем pointcut, не имеет соответствующего параметра в методе совета или наоборот, см. Также мой ответ здесь .
В руководстве AspectJ говорится:
Если формально связаны (используя args()
, target()
, this()
, @args()
, @target()
, @this()
, @annotation()
) в pointcut, тогда они должны появиться в сигнатуре метода.
Тогда в целом вам нужно знать, что при использовании связанного параметра вам нужно ссылаться на него из pointcut по имени, а не по типу, как упоминалось в RG, потому что тип уже указан в сигнатуре метода совета. Только если вы используете несвязанный параметр, вам нужно указать его тип по его (полностью определенному) имени класса.
Итак, в вашем случае вы должны использовать (кредиты для RG):
@Around("@annotation(cb)")
fun aroundAnnotatedCBMethod(joinPoint: ProceedingJoinPoint, cb: CB?): Mono<*>