【问题标题】:Publish-Subscribe in spring? [closed]春季发布-订阅? [关闭]
【发布时间】:2013-04-03 14:39:35
【问题描述】:

谁能告诉我如何在 Spring 中使用 Publish-Subscribe 模式? Spring 是否有任何内置功能来实现这一点?

在 Java 中,我们可以这样做:http://www.avajava.com/tutorials/lessons/observer-pattern.html

【问题讨论】:

  • 不完全理解上下文 Anand - 让我抛出一些东西。发布订阅是一个消息传递概念,用于广播消息(或事件)。通常这是在诸如 ActiveMQ、RabbitMQ 等 MOM(面向消息的中间件)系统的上下文中完成的。Spring 确实在“Spring 集成”框架内实现了发布/订阅模式,您可以在此处查看更多详细信息 (static.springsource.org/spring-integration/reference/htmlsingle/…)
  • 春天的JMS 怎么样。 JMS 句柄是否使用“发布-订阅”?
  • @Anand 你考虑过阅读 Spring Integration 的文档吗? Messaging, JMS
  • 观察者和发布订阅是有区别的。在观察者模式中,可观察者通常知道观察者,因为它必须链接它们。在发布-订阅中,发布者和订阅者完全不知道对方。这更复杂,所以它通常使用复杂的东西,比如消息队列服务或其他中间人。 spring IoC 实际上可以在这里提供帮助,因为它可以处理 observable 和 observer 之间的依赖关系并成为中间人(请参阅我对答案的评论)。我认为这是一个真正的问题。

标签: java spring design-patterns spring-mvc publish-subscribe


【解决方案1】:

Spring 是 Java;显然,您可以在 Spring 中使用任何 Java 模式,以及 Spring 的额外好处(尤其是 IoC 和 AOP)。 Spring 本身 provides its own events 可以用来做的。

Spring Integration 为 Spring 带来了大量的 Java EE 模式,包括 Pubsub。对于简单的用例,它可能有点繁重; RabbitMQSpring's AMQP support 之类的东西更轻。

PubSub 只是一种模式:有很多 ton 方法来实现它。哪个最有意义取决于很多因素。在提出如此广泛的问题之前,请考虑在网上多搜索一下;有大量资源涵盖了广泛的实施选择。

【讨论】:

  • 感谢您的回答并 +1。好的,我会参考文档并让您知道。
  • 我通过java2s.com/Code/Java/Spring/…lordofthejars.com/2011/10/…找到了另一种不使用任何开源的方法
  • @Anand 这与 Spring 的事件有何不同?第二个链接的文本与我提供的链接完全相同......无论如何。
  • 是的,我仅从您的链接中获得了想法,这就是我接受您的回答的原因。特别感谢您的黄金回答。
  • 简单来说就是org.springframework.context.ApplicationEventPublisher和ApplicationListener
猜你喜欢
  • 1970-01-01
  • 2019-06-20
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2013-06-23
  • 1970-01-01
相关资源
最近更新 更多