【问题标题】:Gain of implement our Spring event listener实现我们的 Spring 事件监听器的收获
【发布时间】:2015-10-31 19:05:31
【问题描述】:

研究 Spring 事件处理程序我看不出实现我们的事件侦听器有什么好处,我的意思是,对象 A 直接同步调用对象 B 或对象 A 有什么区别,使用一个侦听器和一个事件处理程序,发布然后调用对象 B。可能是关于一些架构增益或获得低耦合?真正的收获是什么? tks。

【问题讨论】:

    标签: java spring events listener


    【解决方案1】:

    正如您所提到的,这种方法降低了类之间的耦合,因为事件的发送者或接收者彼此不知道。

    以防万一,将这种方法用于所有方法调用并不理想,但当操作并不真正相关时,它会很有意义。

    例如,想象以下场景:当用户完成注册后,我们会向他/她发送一封欢迎电子邮件

    在这种情况下,将注册过程与发送电子邮件结合起来并不是很好。但是,如果您在 UserRegistered 事件上有一个侦听器,则可以从该事件中触发电子邮件。我真的很喜欢这种构建应用程序的方式,因为它使它们更加解耦,但是,根据您使用的事件调度程序,理解流程变得更加困难(例如,如果事件调度程序接收到一个字符串作为事件名称和一个带有数据,则很难轻松获得所有消费者的列表)。

    一个重要的方面(或者我应该说气味)是 2 个侦听同一事件的侦听器不应该依赖于他们使用事件的顺序。这适用于所有事件分发器,而不仅仅是 Spring 实现的分发器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多