Annotation Interface Splitter


Indicates that a method is capable of splitting a single message or message payload to produce multiple messages or payloads.

A method annotated with @Splitter 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 either a Collection or Array with elements of any type. If the type is not a Message, each will be used as the payload for creating a new Message.

Author:
Mark Fisher, Gary Russell, Artem Bilan, Chris Bono
  • Element Details

    • inputChannel

      String inputChannel
      Specify the channel from which this splitter will consume messages. If the channel does not exist, a DirectChannel with this name will be registered in the application context.
      Returns:
      The channel name.
      Default:
      ""
    • outputChannel

      String outputChannel
      Specify the channel to which this splitter will send any replies.
      Returns:
      The channel name.
      Default:
      ""
    • applySequence

      String applySequence
      Set this flag to false to prevent adding sequence related headers in this splitter. This can be convenient in cases where the set sequence numbers conflict with downstream custom aggregations. When true, existing correlation and sequence related headers are pushed onto a stack; downstream components, such as aggregators may pop the stack to revert the existing headers after aggregation. Defaults to true. Can be specified as 'property placeholder', e.g. ${spring.integration.applySequence}.
      Returns:
      the apply sequence flag.
      Default:
      ""
    • adviceChain

      String[] adviceChain
      Specify a "chain" of Advice beans that will "wrap" the message handler. Only the handler is advised, not the downstream flow.
      Returns:
      the advice chain.
      Default:
      {}
    • sendTimeout

      String sendTimeout
      Specify the maximum amount of time in milliseconds to wait when sending a reply Message to the outputChannel. 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 a MessageDeliveryException is thrown. The 'sendTimeout' is ignored in case of AbstractSubscribableChannel 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 autoStartup
      The SmartLifecycle autoStartup option. Can be specified as 'property placeholder', e.g. ${foo.autoStartup}. Defaults to true.
      Returns:
      the auto startup boolean flag.
      Default:
      ""
    • phase

      String phase
      Specify a SmartLifecycle phase option. Defaults Integer.MAX_VALUE / 2 for PollingConsumer and Integer.MIN_VALUE for EventDrivenConsumer. 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 with reactive().
      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
      Returns:
      the Reactive marker for a consumer endpoint. Mutually exclusive with poller().
      Since:
      5.5
      Default:
      @org.springframework.integration.annotation.Reactive("\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n")