I am learning spring integration reading/watching a different stuff but I can't understand what service activator is.
I understood that there are two types of integration:
chanel and gateways. chanel is unidirectional integration but gateways is request/reply model. Gateways can be inbound(our system gets request and sends response) and outbound (our system sends request and receives response)
When I read about gateways I often see termin "service activator"
Could you clarify what does it mean ?
The outbound gateway
is essentially a particular case for a service activator
abstraction for request/reply scenarios. Another case is an outbound channel adapter
, which is a one-way, but still can be treated as a service activator
because when we send a message to its inputChannel
, we are going to call some code - which we can treat as a service. Therefore activating it.
A general component service activator
exists there for all the use-cases which are not covered by particular implementation. Let's imaging you need to call some REST service. Right, you can use an HTTP Outbound Gateway with some specific options. Or you can write some custom code which uses a RestTemplate
to call that service. you wrap your code into a service activator
configuration and you end up with the same behavior for the whole integration solution.