gpt4 book ai didi

java - 使用Spring应用事件发布有什么优势?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:05 24 4
gpt4 key购买 nike

我在开发一个使用一些 Spring 应用程序事件发布的 Web 应用程序,我想知道它的优点是什么?为什么不为事件处理程序的 onApplicationEvent 中发生的所有事件创建服务调用,然后调用该服务而不是发布事件?

最佳答案

使用 Spring 的事件发布(观察者模式 - http://en.wikipedia.org/wiki/Observer_pattern)的优点之一是组件松散耦合 - 发布者和订阅者之间没有直接耦合。当然,它们都依赖于 Spring Event API,但彼此不依赖。这使得可以通过添加/删除订阅者来扩展应用程序而不影响其他订阅者(假设您的订阅者不相互依赖)。

另一方面,正如您可能已经发现的那样,它会使调试变得更加棘手,因为它在事件源和总体结果之间引入了一定程度的间接性。

是的,您通常可以用直接 API 调用替换事件。在以下情况下非常适合使用事件:

  • 您将来可能需要在事件发生时采取不止一项独立行动
  • 处理需要移交给另一个线程以防止阻塞,例如发送电子邮件(使用自定义 ApplicationEventMulticaster)。
  • 系统如何处理事件,例如AuthorizationFailureEvent,不依赖于监听器的结果。
  • 您正在编写一个库,例如Spring Security 和直接 API 调用不是一种选择。

关于java - 使用Spring应用事件发布有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5239448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com