Annotation Interface ServiceActivator
@Target({METHOD,ANNOTATION_TYPE})
@Retention(RUNTIME)
@Documented
@Repeatable(ServiceActivators.class)
public @interface ServiceActivator
Indicates that a method is capable of handling a message or message payload.
A method annotated with @ServiceActivator may accept a parameter of type
Message
or of the expected
Message payload's type. Any type conversion supported by
SimpleTypeConverter
will be applied to
the Message payload if necessary. Header values can also be passed as
Message parameters by using the
@Header
parameter annotation.
Return values from the annotated method may be of any type. If the return value is not a Message, a reply Message will be created with that object as its payload.
- Author:
- Mark Fisher, Gary Russell, Artem Bilan, Yilin Wei, Chris Bono
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionString[]
Specify a "chain" ofAdvice
beans that will "wrap" the message handler.Specify whether the service method is async.TheSmartLifecycle
autoStartup
option.Specify the channel from which this service activator will consume messages.Specify the channel to which this service activator will send any replies.Specify aSmartLifecycle
phase
option.Specify whether the service method must return a non-null value.Specify the maximum amount of time in milliseconds to wait when sending a replyMessage
to theoutputChannel
.
-
Element Details
-
inputChannel
String inputChannelSpecify the channel from which this service activator will consume messages. If the channel does not exist, aDirectChannel
with this name will be registered in the application context.- Returns:
- The channel name.
- Default:
- ""
-
outputChannel
String outputChannelSpecify the channel to which this service activator will send any replies.- Returns:
- The channel name.
- Default:
- ""
-
requiresReply
String requiresReplySpecify whether the service method must return a non-null value. This value isfalse
by default, but if set totrue
, aReplyRequiredException
will is thrown when the underlying service method (or expression) returns a null value. Can be specified as 'property placeholder', e.g.${spring.integration.requiresReply}
.- Returns:
- the requires reply flag.
- Default:
- ""
-
adviceChain
String[] adviceChainSpecify a "chain" ofAdvice
beans that will "wrap" the message handler. Only the handler is advised, not the downstream flow.- Returns:
- the advice chain.
- Default:
- {}
-
sendTimeout
String sendTimeoutSpecify the maximum amount of time in milliseconds to wait when sending a replyMessage
to theoutputChannel
. Defaults to30
seconds. It is applied only if the output channel has some 'sending' limitations, e.g.QueueChannel
with fixed a 'capacity'. In this case aMessageDeliveryException
is thrown. The 'sendTimeout' is ignored in case ofAbstractSubscribableChannel
implementations. Can be specified as 'property placeholder', e.g.${spring.integration.sendTimeout}
.- Returns:
- The timeout for sending results to the reply target (in milliseconds)
- Default:
- ""
-
autoStartup
String autoStartupTheSmartLifecycle
autoStartup
option. Can be specified as 'property placeholder', e.g.${foo.autoStartup}
. Defaults totrue
.- Returns:
- the auto startup
boolean
flag.
- Default:
- ""
-
phase
String phaseSpecify aSmartLifecycle
phase
option. DefaultsInteger.MAX_VALUE / 2
forPollingConsumer
andInteger.MIN_VALUE
forEventDrivenConsumer
. Can be specified as 'property placeholder', e.g.${foo.phase}
.- Returns:
- the
SmartLifecycle
phase.
- Default:
- ""
-
async
String asyncSpecify whether the service method is async. This value isfalse
by default.- Returns:
- the async flag.
- Default:
- ""
-
poller
Poller poller- Returns:
- the
Poller
options for a polled endpoint (PollerMetadata
). Mutually exclusive withreactive()
.
- Default:
- @org.springframework.integration.annotation.Poller("\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n")
-
reactive
Reactive reactive- Default:
- @org.springframework.integration.annotation.Reactive("\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n")
-