将网关连接到服务激活器的弹簧集成



我创建了一个网关和一个轮询通知通道,网关用来路由消息。我希望服务激活器从频道进行调查并做事。但是我似乎无法理解一些有关春季整合的事情。

在这种情况下,我们需要一个IntegrationFlow Bean吗?会呼叫网关方法只会发送消息槽频道,而服务激活器可以在有新消息时自动进行轮询?

ConfigurationClass:

@EnableIntegration
@Configuration
@IntegrationComponentScan
class IntegrationConfiguration {
  @Bean
  fun notificationChannel(): MessageChannel {
      return MessageChannels.queue().get()
  }
  @Bean
  fun integrationFlow(): IntegrationFlow {
      TODO()
  }
}

网关:

@MessagingGateway(defaultRequestChannel = "notificationChannel")
@Component
interface NotificationGateway {
  fun sendNotification(bytes: ByteArray)
}

服务:

@Service
class NotificationService {
  @ServiceActivator(inputChannel = "notificationChannel")
  fun sendNotification(bytes: ByteArray) {
      TODO()
  }
}

我是春季整合的新手,并且有一个艰难的时期,因为我找不到有关我的知识水平的可理解的文档,尤其是在春季集成DSL上。

我的主要问题可能是我现在了解IntegrationFlow Bean的使用

对于像您这样的简单用例,您确实不需要IntegrationFlow。您现在拥有的简单@ServiceActivator足以处理notificationChannel的消息。您需要的只是@Poller,因为@ServiceActivator配置是notificationChannelPollableChannel,而不是可订阅的。

有关更多信息,请参见参考手册:https://docs.spring.io/spring-integration/docs/current/current/referent/html/#configuration-using-poller-using-poller-annotation

还要注意文档开头的段落:https://docs.spring.io/spring-integration/docs/current/current/referent/html/#programprogramming-considming

相关内容

  • 没有找到相关文章

最新更新