Механизм событий Spring поддерживает публикацию событий приложения и прослушивание этих событий. как объясняется в этом вопросе: Возможны ли события Scoped Spring? Событие Spring уведомляет только слушателей текущего сеанса запроса. поэтому мой вопрос заключается в том, чтобы можно было уведомить все существующие компоненты bean-объекта.
пример кода:
@Controller
public class FooController {
@Autowired
private ApplicationEventPublisher publisher;
@GetMapping("/fireEvent")
public void notifyAllScopedBeans() {
publisher.publishEvent(new FooEvent(this));
}
}
@SessionScope
@Component
public class FooListener {
private String username = "this bean username"
@EventListener(FooEvent.class)
public void listen() {
System.out.println("I'm listening. PS : I am
"+this.username);
}
}