Предположим, у меня есть издатель
@Data
public class FooEvent {
String name;
}
@Component
public class FooPublisher {
@Autowired
ApplicationEventPublisher publisher;
public void myBusinessFunction() {
...doSomething...
publisher.publishEvent(new FooEvent("fooName");
}
}
Теперь я хочу создать EventListener для этого события
@Component
public class MyEventListener {
@EventListener(condition = "filter(event.name)")
public void handleFoo(FooEvent event) {
sout(event);
}
public boolean filter(String name) {
return name.equals("test");
}
}
Мой EventListener хочет иметь собственный фильтр с функцией внутри моего MyEventListener.
Конечно, эта функция не работает из-за condition = "filter(event.name)"
Как я могу написать собственный фильтр в состоянии @EventListener?