J'ai besoin d'un filtre flexible pour FooEvents
pour plusieurs EventListeners partout dans mon code. Je peux utiliser @EventListener (condition = "event.enabled"), mais mes filtres nécessitent de nombreux attributs de fooEvent à analyser.spring eventListener avec condition externe
J'espérais que je pouvais utiliser un prédicats-Bean de mon contexte d'application:
@Component
public class FooPredicate implements Predicate<FooEvent> {
public boolean test(FooEvent event) {...}
}
...
@EventListener(condition="${fooPredicate.test(event)}")
public void handle(FooEvent event) { ... }
Mais je reçois:
org.springframework.expression.spel.SpelEvaluationException: EL1011E:
Method call: Attempted to call method
test(org.springframework.context.PayloadApplicationEvent) on null
context object
Est-il possible d'utiliser des conditions complexes externes, pour EventListerns? Ou au moins pour définir les auditeurs globaux avec des conditions complexes et hériter de leur comportement sans répéter les conditions complètes?