在应用程序启动时监听消息启动Spring启动



我有一个Spring Boot应用程序,在应用程序启动时开始侦听Azure IOT Hub。它是这样做的:

@EventListener
public void subscribeEventMessages(ContextRefreshedEvent event)  {
client
.receive(false) // set this to false to read only the newly available events
.subscribe(this::hubAllEventsCallback);
}

我的问题是,这使用ContextRefreshedEvent,但实际上我只想在应用程序启动时启动它一次。我还检查了其他方法如何在开始时开始某事,如CommandLineRunner

另一方面,如果实现侦听器更标准的东西,如JMS,有特定的注释,如@JmsListener或提供特定类型的bean。

我的问题是:我可以利用这些更多的消息(订阅)相关机制来启动我的方法吗?

如果我们不想让@EventListener监听"context refresh"但仅在"上下文开始"时,请(尝试)替换:

  • ContextRefreshEvent
  • ContextStartEvent

…也就是&;sibling class&;正是这种语义上的差异

相关内容

  • 没有找到相关文章

最新更新