会话之间的Java Spring ApplicationEventPublisher

时间:2017-04-28 23:53:47

标签: spring spring-mvc


我对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?是可能还是我找错了解? 感谢。

0 个答案:

没有答案