Вы можете создать прослушиватель событий для типа интересующих вас событий и зарегистрировать событие. Spring зарегистрирует этого слушателя, и вы в основном закончите:
@Component
public class CustomEventListener implements ApplicationListener<CustomEvent> {
private static final Logger logger = ...;
@Override
public void onApplicationEvent(CustomEvent event) {
LOGGER.info("Got event: {}" , event);
}
}
Однако вы не можете использовать одного и того же слушателя, подписанного на несколько типов события, если у них нет иерархии ( наследование от какого-либо базового события) Вам может быть интересно прочитать этот поток , который предоставляет технические решения в различных случаях.