Spring 将网关连接到服务激活器的集成
Spring Integration Connecting a Gateway to a Service Activator
我已经创建了一个网关和一个网关用来路由消息的轮询通知通道。我想要一个服务激活器从通道中轮询并做它的事情。但我似乎无法掌握有关 Spring 集成的一些事情。
在这种情况下,我们需要 IntegrationFlow Bean 吗?调用网关方法不就是通过通道发送消息,服务激活器可以在有新消息时自动轮询吗?
配置类:
@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()
}
}
我是 Spring 集成的新手,并且遇到了一段艰难的时光,因为我找不到适合我的知识水平的可理解的文档,尤其是关于 Spring 集成 DSL 的文档。
我的主要问题可能是我现在了解 IntegrationFlow Bean 的使用
对于像您这样的简单用例,您确实不需要 IntegrationFlow
。您现在拥有的简单 @ServiceActivator
足以处理来自 notificationChannel
的消息。您只需要 @ServiceActivator
配置中的 @Poller
,因为您的 notificationChannel
是 PollableChannel
并且不可订阅。
有关详细信息,请参阅参考手册:https://docs.spring.io/spring-integration/docs/current/reference/html/#configuration-using-poller-annotation
另请注意文档开头的段落:https://docs.spring.io/spring-integration/docs/current/reference/html/#programming-considerations
我已经创建了一个网关和一个网关用来路由消息的轮询通知通道。我想要一个服务激活器从通道中轮询并做它的事情。但我似乎无法掌握有关 Spring 集成的一些事情。
在这种情况下,我们需要 IntegrationFlow Bean 吗?调用网关方法不就是通过通道发送消息,服务激活器可以在有新消息时自动轮询吗?
配置类:
@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()
}
}
我是 Spring 集成的新手,并且遇到了一段艰难的时光,因为我找不到适合我的知识水平的可理解的文档,尤其是关于 Spring 集成 DSL 的文档。
我的主要问题可能是我现在了解 IntegrationFlow Bean 的使用
对于像您这样的简单用例,您确实不需要 IntegrationFlow
。您现在拥有的简单 @ServiceActivator
足以处理来自 notificationChannel
的消息。您只需要 @ServiceActivator
配置中的 @Poller
,因为您的 notificationChannel
是 PollableChannel
并且不可订阅。
有关详细信息,请参阅参考手册:https://docs.spring.io/spring-integration/docs/current/reference/html/#configuration-using-poller-annotation
另请注意文档开头的段落:https://docs.spring.io/spring-integration/docs/current/reference/html/#programming-considerations