创建一个监听多个事件的事件监听器在名义上很容易:
@EventListener({EventA.class, EventB.class})public doSomething() { ...}
但是显然,这种方法不能使您访问基础事件。基于javadoc,
EventListener似乎无法执行您建议的 *** 作
如果带注释的方法支持单个事件类型,则该方法可以声明单个参数以反映要侦听的事件类型。如果带注释的方法支持多种事件类型,则此注释可以使用classes属性引用一个或多个受支持的事件类型。有关更多详细信息,请参见classes()javadoc。
…
如果(
classes)属性使用单个值指定,则带注释的方法可以选择接受单个参数。但是,如果此属性指定了多个值,则带注释的方法不得声明任何参数。
因此,似乎没有任何机制可以消耗多个事件并根据这些事件的主体采取不同的 *** 作。我建议不要这样做,您可以始终注册特定于事件的
@EventListener方法,然后让它们调用共享方法来执行任何常用功能。
来源:https :
//docs.spring.io/spring/docs/current/javadoc-
api/org/springframework/context/event/EventListener.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)