Spring EventListener con condición externa

Necesito filtros flexibles paraFooEvents para múltiples EventListeners en todo mi código. Puedo usar @EventListener (condition = "event.enabled"), pero mis filtros requieren muchos atributos de fooEvent para ser analizados.

Esperaba poder usar un Predicate-Bean de mi contexto de aplicación:

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

...

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

Pero me sale:

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

¿Es posible usar condiciones externas complejas para EventListerns? ¿O al menos definir oyentes globales con condiciones complejas y heredar su comportamiento sin repetir las condiciones completas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta