【问题标题】:Spring event lifecycle春季事件生命周期
【发布时间】:2022-06-15 22:32:51
【问题描述】:

要了解弹簧事件是否适合我正在处理的任务,我需要了解它们是如何工作的,它们存储在哪里? 我可以猜到它们存储在 Spring 应用程序上下文中,如果应用程序崩溃就会消失,我的猜测是否正确?

【问题讨论】:

标签: java spring events event-handling


【解决方案1】:

Spring 事件旨在用于直接调用方法会产生过多耦合的情况。如果您需要跟踪事件以进行审计或重播,您必须自己保存事件。根据您的 cmets,有很多方法可以实现这一点,具体取决于应用程序的拓扑和用途(列表不完整):

  1. 为表示事件的实体建模并将它们存储在存储库中
  2. 结合支持消息持久性的消息代理,例如 Kafka
  3. 安装内存缓存,例如Hazelcast
  4. 使用云消息服务,例如AWS SQS

最后,请务必仔细评估哪些选项最适合您的需求。选项 2 到 4 都引入了严重的复杂性,分布式应用程序会给你的生活带来悲伤和痛苦。如果可以,请选择最简单的选项,除非绝对必要,否则仅使用其他选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    相关资源
    最近更新 更多