Mam potrzebę zarejestrowania osobnego detektora zdarzeń dla każdego żądania. Celem słuchacza jest złapać zdarzeń pochodzących z innych wniosków spoczynku, podczas gdy wniosek słuchacza jest zablokowany w oczekiwaniu wszystkich wymaganych zdarzeń przyjśćApplicationEventListener o ograniczonym zasięgu żądania nie może odbierać zdarzeń
Mam kodu, takich jak to:.
@Component
// @Scope(WebApplicationContext.SCOPE_REQUEST)
public static class WhistleEventListener implements ApplicationListener<WhistleEvent> {
volatile Consumer<WhistleEvent> handler;
@Override
public void onApplicationEvent(WhistleEvent we) {
final Consumer<WhistleEvent> h = handler;
if (h != null) h.accept(we);
}
}
@Autowired WhistleEventListener whistleEventListener;
Kod ten odbiera zdarzenia, ale zaraz po odkomentowaniu adnotacji @Scope
przestaje odbierać zdarzenia.
Czy obsługiwane są detektory zdarzeń aplikacji o zakresie zapytań, czy są to , które powinny działać pod? Jeśli tak, czy mogę zrobić coś, aby mój słuchacz zadziałał?
I uciekają się do tego, co ty tu przedstawić, stosując 'ConcurrentHashMap' oraz z dodatkowym problemem, że "Konsument" jest lambdą i nie należy liczyć na jego tożsamość. Potrzebuję więc wygenerować unikalny klucz do mapy. Jest brzydki, ale działa na razie. –