Annotation Interface Filter
@Target({METHOD,ANNOTATION_TYPE})
@Retention(RUNTIME)
@Documented
@Repeatable(Filters.class)
public @interface Filter
Indicates that a method is capable of playing the role of a Message Filter.
A method annotated with @Filter may accept a parameter of type
Message
or of the expected
Message payload's type. Any type conversion supported by default or any
Converters registered with the "integrationConversionService" bean will be
applied to the Message payload if necessary. Header values can also be passed
as Message parameters by using the
@Header
parameter annotation.
The return type of the annotated method must be a boolean (or Boolean).
- Since:
- 2.0
- Author:
- Mark Fisher, Gary Russell, Artem Bilan, Chris Bono
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionString[]
Specify a "chain" ofAdvice
beans that will "wrap" the message handler.TheSmartLifecycle
autoStartup
option.Specify the channel to which this filter will send messages that do no pass the selector.Whentrue
(default) any discard action (and exception thrown) will occur within the scope of the advice class(es) in the chain.Specify the channel from which this filter will consume messages.Specify the channel to which this filter will send messages that pass the selector.Specify aSmartLifecycle
phase
option.Specify the maximum amount of time in milliseconds to wait when sending a replyMessage
to theoutputChannel()
.Throw an exception if the filter rejects the message.
-
Element Details
-
inputChannel
String inputChannelSpecify the channel from which this filter 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 filter will send messages that pass the selector.- Returns:
- The channel name.
- Default:
- ""
-
discardChannel
String discardChannelSpecify the channel to which this filter will send messages that do no pass the selector.- Returns:
- The channel name.
- Default:
- ""
-
throwExceptionOnRejection
String throwExceptionOnRejectionThrow an exception if the filter rejects the message. Defaults tofalse
. Can be specified as 'property placeholder', e.g.${spring.integration.throwExceptionOnRejection}
.- Returns:
- the throw Exception on rejection 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:
- {}
-
discardWithinAdvice
String discardWithinAdviceWhentrue
(default) any discard action (and exception thrown) will occur within the scope of the advice class(es) in the chain. Otherwise, these actions will occur after the advice chain returns. Can be specified as 'property placeholder', e.g.${spring.integration.discardWithinAdvice}
.- Returns:
- the discard within advice flag.
- 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:
- ""
-
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")
-