繁体   English   中英

实现我们的 Spring 事件监听器的收益

[英]Gain of implement our Spring event listener

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM