CDI - это вызывающий абонент, когда наблюдатель наблюдает за событием?
-
27-09-2019 - |
Вопрос
Я использую CDI и хочу знать, как вызывает абонент, что наблюдатель наблюдал, что событие или не сделало. Если нет, не соблюдает действовать на этом событии, то я хочу что-то сделать. Я не вижу, что это задокументировано где угодно в документации, отличной от того, что был намек на то, что вызывающий абонент уведомлен.
Спасибо,
Уолтер
Решение
Я не думаю, что вызывающий абонент уведомлен (это не то, что узор на соблюдении). Но вы можете попытаться поработать об этом:
Вы можете иметь поле одним объектом события -
private boolean consumed
и установить егоtrue
Если он потребляется. Затем (события обрабатываются синхронно) в производителе событий проверьте эту переменную.Увольнение нового события от наблюдателей, которые наблюдаются производителем событий
Если вы хотите отбросить преимущество свободной муфты, и вы точно знаете, какой производителем событий есть, вы можете
@Inject
это во всех слушателей, и пусть они вызывают метод на нем