Spring Boot @Around не работает на javax.jms.MessageListsner.onMessage () - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь разработать перехватчик логов для некоторых методов в нашем AMQP-проекте. Я использую Springs @ Aspect-Annotation и пользовательскую аннотацию для создания перехватчика. Наш AMQP-контроллер реализует интерфейс javax.jms.MessageHandler и переопределяет метод onMessage(Message), который я хочу перехватить.

Класс имеет следующую подпись:

public abstract class AMQPController implements MessageListener {
...
   @Override
   public void onMessage(Message message){
      // application logic
   }
...
}

Мой перехватчик выглядит так:

@Slf4j
@Aspect
@Component
public class LoggedInterceptor {

   @Around("execution(public void javax.jms.MessageListener+.onMessage(..))")
   public Object intercept(ProceedingJoinPoint joinPoint) {
      // application logic
   }
}

Каждый раз, когда запускается новое AMQP-сообщение, onMessage() -метод срабатывает, но мой перехватчик, похоже, не срабатывает.

У кого-нибудь есть идея, почему?

Привет из Германии: -)

1 Ответ

0 голосов
/ 09 июля 2019

Попробуйте использовать его,

@ Around (value = "выполнение (* javax.jms.MessageListener.onMessage (..))")

...