Annotation Type ServiceActivator
@Target({METHOD,ANNOTATION_TYPE}) @Retention(RUNTIME) @Documented 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
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description String[]
adviceChain
Specify a "chain" ofAdvice
beans that will "wrap" the message handler.String
async
Specify whether the service method is async.String
autoStartup
TheSmartLifecycle
autoStartup
option.String
inputChannel
Specify the channel from which this service activator will consume messages.String
outputChannel
Specify the channel to which this service activator will send any replies.String
phase
Specify aSmartLifecycle
phase
option.Poller[]
poller
Reactive
reactive
String
requiresReply
Specify whether the service method must return a non-null value.String
sendTimeout
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 to-1
- blocking indefinitely. 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
). This attribute is anarray
just to allow an empty default (no poller). Only onePoller
element is allowed. Mutually exclusive withreactive()
.
- Default:
- {}
-
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")
-