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
Optional ElementsModifier and TypeOptional ElementDescriptionString[]Specify a "chain" ofAdvicebeans that will "wrap" the message handler.TheSmartLifecycleautoStartupoption.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 aSmartLifecyclephaseoption.Specify the maximum amount of time in milliseconds to wait when sending a replyMessageto 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, aDirectChannelwith 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" ofAdvicebeans 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 replyMessageto theoutputChannel(). Defaults to-1- blocking indefinitely. It is applied only if the output channel has some 'sending' limitations, e.g.QueueChannelwith fixed a 'capacity'. In this case aMessageDeliveryExceptionis thrown. The 'sendTimeout' is ignored in case ofAbstractSubscribableChannelimplementations. 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 autoStartupTheSmartLifecycleautoStartupoption. Can be specified as 'property placeholder', e.g.${foo.autoStartup}. Defaults totrue.- Returns:
- the auto startup
booleanflag.
- Default:
- ""
-
phase
String phaseSpecify aSmartLifecyclephaseoption. DefaultsInteger.MAX_VALUE / 2forPollingConsumerandInteger.MIN_VALUEforEventDrivenConsumer. Can be specified as 'property placeholder', e.g.${foo.phase}.- Returns:
- the
SmartLifecyclephase.
- Default:
- ""
-
poller
Poller poller- Returns:
- the
Polleroptions 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")
-