spring 集成中的服务激活器组件是什么?

What is service activator component in spring integration?

我正在学习 spring 集成 reading/watching 不同的东西,但我不明白什么是服务激活器。

我了解到集成有两种类型:
香奈儿和网关。 chanel 是单向集成,而 gateways 是 request/reply 模型。网关可以是入站(我们的系统获取请求并发送响应)和出站(我们的系统发送请求并接收响应)

当我阅读有关网关的内容时,我经常会看到终端 "service activator"

你能解释一下这是什么意思吗?

服务激活器是对 bean 中方法的调用。

<service-activator ref="myService" method="aMethod"/>

会打电话

@Service
public class MyService {
    public A aMethod(@Header(value = "param1") String param){
        //code
    }
}

@Header 注释允许使用 header 中的现有值。这是一个例子。

你也可以这样使用:

<service-activator expression="@myService.aMethod('My param')"/>

outbound gateway 本质上是 request/reply 场景的 service activator 抽象的特例。另一种情况是 outbound channel adapter,它是单向的,但仍然可以视为 service activator,因为当我们向其 inputChannel 发送消息时,我们将调用一些代码- 我们可以将其视为一项服务。因此激活它。

通用组件 service activator 存在于特定实现未涵盖的所有用例中。让我们假设您需要调用一些 REST 服务。是的,您可以使用具有某些特定选项的 HTTP 出站网关。或者您可以编写一些使用 RestTemplate 来调用该服务的自定义代码。您将代码包装到 service activator 配置中,最终整个集成解决方案的行为相同。