【发布时间】:2019-11-18 23:02:55
【问题描述】:
我正在尝试为我们的 AMQP 项目中的某些方法开发日志拦截器。
我正在使用 Springs @Aspect-Annotation 和自定义注释来创建拦截器。我们的 AMQP-Controller 实现了javax.jms.MessageHandler 接口并覆盖了我想要拦截的onMessage(Message)-Method。
该类具有以下签名:
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-Message 时,都会触发 onMessage()-Method,但我的拦截器似乎没有被触发。
有人知道为什么吗?
来自德国的问候 :-)
【问题讨论】:
-
没有
javax.jms.MessageHandler -
对不起,我的意思是
javax.jms.MessageListener(见编辑过的问题):-) -
该方法不是在实现上调用,而是在
abstract上调用,因此是超类。 -
嘿。你能做到吗?
标签: spring-boot jms interceptor aspect