Spring @EventListener 有两个参数

Spring @EventListener with two arguments

我正在寻找一种将两个参数传递给 @EventListener 的方法。我有一个 Event class。它看起来像这样:

public class Event {
    String id;
    Date timestamp;
    String data;
    String type;
}

data是序列化的,类型描述了如何反序列化。

目前,我反序列化事件数据,然后通过 `ApplicationEventPublisher 发布反序列化的 EventData subclass 实例,如下所示:

public void listen(Event event) throws IOException {
    EventData eventData = converter.toEventData(event);
    eventPublisher.publishEvent(eventData);        
} 

到目前为止效果很好,但现在我需要访问我的侦听器中的事件和数据。有没有办法将两个参数传递给 @EventListener?

我不认为有任何方法可以将第二个参数传递给事件侦听器。

您可以将 event 属性 添加到 EventData 基础 class 中,该基础 class 由 converter 填充,原始参数传递给它。