我对Spring很新,我最近遇到过这个ApplicationEventPublisher,但是不能让它按照我想要的方式工作..
我有一个会话bean,它注册EventListener如下:
@Component
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class SessionBean implements Serializable {
@Async
@EventListener
public void handleObjectPersistedEvent(ObjectPersistedEvent event) {
Utils.LOG.debug(user.getFirstName() + ": ObjectPersistedEvent " + event.getObject());
}
private User user;
虽然我的dao自动装配ApplicationEventPublisher,如下所示:
@Autowired
private ApplicationEventPublisher publisher;
public void persist(User user) {
entityManager.persist(user);
publisher.publishEvent(new ObjectPersistedEvent(user.getId()));
}
当提交表单时,dao.persist由控制器调用的服务调用
我的想法是,当管理员用户对另一个用户进行更改时,会广播一条消息,告诉所有持有对该第二个用户的引用的会话进行更新。
问题是执行更改的管理员用户的会话是唯一接收该消息的会话
如何将此消息发送到所有会话bean?是可能还是我找错了解?
感谢。