eventListener com condição externa

Eu preciso de filtros flexíveis paraFooEvents para vários EventListeners em todo o meu código. Posso usar @EventListener (condition = "event.enabled"), mas meus filtros exigem que muitos atributos de fooEvent sejam analisados.

Eu esperava poder usar um Predicate-Bean no meu Contexto de Aplicativo:

@Component
public class FooPredicate implements Predicate<FooEvent> {
   public boolean test(FooEvent event) {...}
}

...

@EventListener(condition="${fooPredicate.test(event)}")
public void handle(FooEvent event) { ... }

Mas eu entendo:

org.springframework.expression.spel.SpelEvaluationException: EL1011E: 
   Method call: Attempted to call method 
   test(org.springframework.context.PayloadApplicationEvent) on null 
   context object

É possível usar condições externas complexas para EventListerns? Ou pelo menos para definir ouvintes globais com condições complexas e herdar seu comportamento sem repetir todas as condições?

questionAnswers(1)

yourAnswerToTheQuestion