Annotation Interface ReactivePulsarListener
@Target({TYPE,METHOD,ANNOTATION_TYPE})
@Retention(RUNTIME)
@MessageMapping
@Documented
public @interface ReactivePulsarListener
Annotation that marks a method to be the target of a Pulsar message listener on the
specified topics.
The
containerFactory()
identifies the
ReactivePulsarListenerContainerFactory
to use to build the Pulsar listener
container. If not set, a default container factory is assumed to be available
with a bean name of pulsarListenerContainerFactory
unless an explicit default
has been provided through configuration.
Processing of @ReactivePulsarListener
annotations is performed by registering a
ReactivePulsarListenerAnnotationBeanPostProcessor
. This can be done manually
or, more conveniently, through EnableReactivePulsar
annotation.
- Author:
- Christophe Bornet
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionSet to true or false, to override the default setting in the container factory.A pseudo bean name used in SpEL expressions within this annotation to reference the current bean within which this listener is defined.Override the container factory'sconcurrency
setting for this listener.The bean name or a 'SpEL' expression that resolves to aReactiveMessageConsumerBuilderCustomizer
to use to configure the consumer.The bean name of theReactivePulsarListenerContainerFactory
to use to create the message listener container responsible to serve this endpoint.The bean name or a 'SpEL' expression that resolves to aDeadLetterPolicy
to use on the consumer to configure a dead letter policy for message redelivery.The unique identifier of the container for this listener.org.apache.pulsar.common.schema.SchemaType
Pulsar schema type for this listener.boolean
Activate stream consumption.Pulsar subscription name associated with this listener.org.apache.pulsar.client.api.SubscriptionType
Pulsar subscription type for this listener.Topic patten to listen to.String[]
Topics to listen to.Set to true or false, to override the default setting in the container factory.
-
Element Details
-
id
String idThe unique identifier of the container for this listener.If none is specified an auto-generated id is used.
SpEL
#{...}
and property placeholders${...}
are supported.- Returns:
- the
id
for the container managing for this endpoint. - See Also:
- Default:
- ""
-
subscriptionName
String subscriptionNamePulsar subscription name associated with this listener.- Returns:
- the
subscriptionName
for this Pulsar listener endpoint.
- Default:
- ""
-
subscriptionType
org.apache.pulsar.client.api.SubscriptionType subscriptionTypePulsar subscription type for this listener.- Returns:
- the
subscriptionType
for this listener
- Default:
- Exclusive
-
schemaType
org.apache.pulsar.common.schema.SchemaType schemaTypePulsar schema type for this listener.- Returns:
- the
schemaType
for this listener
- Default:
- NONE
-
containerFactory
String containerFactoryThe bean name of theReactivePulsarListenerContainerFactory
to use to create the message listener container responsible to serve this endpoint.If not specified, the default container factory is used, if any. If a SpEL expression is provided (
#{...}
), the expression can either evaluate to a container factory instance or a bean name.- Returns:
- the container factory bean name.
- Default:
- ""
-
topics
String[] topicsTopics to listen to.- Returns:
- a comma separated list of topics to listen from.
- Default:
- {}
-
topicPattern
String topicPatternTopic patten to listen to.- Returns:
- topic pattern to listen to.
- Default:
- ""
-
autoStartup
String autoStartupSet to true or false, to override the default setting in the container factory. May be a property placeholder or SpEL expression that evaluates to aBoolean
or aString
, in which case theBoolean.parseBoolean(String)
is used to obtain the value.SpEL
#{...}
and property place holders${...}
are supported.- Returns:
- true to auto start, false to not auto start.
- Default:
- ""
-
stream
boolean streamActivate stream consumption.- Returns:
- if true, the listener method shall take a
Flux
as input argument.
- Default:
- false
-
beanRef
String beanRefA pseudo bean name used in SpEL expressions within this annotation to reference the current bean within which this listener is defined. This allows access to properties and methods within the enclosing bean. Default '__listener'.- Returns:
- the pseudo bean name.
- Default:
- "__listener"
-
concurrency
String concurrencyOverride the container factory'sconcurrency
setting for this listener. May be a property placeholder or SpEL expression that evaluates to aNumber
, in which caseNumber.intValue()
is used to obtain the value.SpEL
#{...}
and property placeholders${...}
are supported.- Returns:
- the concurrency.
- Default:
- ""
-
useKeyOrderedProcessing
String useKeyOrderedProcessingSet to true or false, to override the default setting in the container factory. May be a property placeholder or SpEL expression that evaluates to aBoolean
or aString
, in which case theBoolean.parseBoolean(String)
is used to obtain the value.SpEL
#{...}
and property place holders${...}
are supported.- Returns:
- true to keep ordering by message key when concurrency > 1, false to not keep ordering.
- Default:
- ""
-
deadLetterPolicy
String deadLetterPolicyThe bean name or a 'SpEL' expression that resolves to aDeadLetterPolicy
to use on the consumer to configure a dead letter policy for message redelivery.- Returns:
- the bean name or empty string to not set any dead letter policy.
- Default:
- ""
-
consumerCustomizer
String consumerCustomizerThe bean name or a 'SpEL' expression that resolves to aReactiveMessageConsumerBuilderCustomizer
to use to configure the consumer.- Returns:
- the bean name or empty string to not configure the consumer.
- Default:
- ""
-