Class DelegatingInvocableHandler
java.lang.Object
org.springframework.kafka.listener.adapter.DelegatingInvocableHandler
Delegates to an
InvocableHandlerMethod
based on the message payload type.
Matches a single, non-annotated parameter or one that is annotated with
Payload
. Matches must be
unambiguous.- Author:
- Gary Russell, Wang Zhiyang
-
Constructor Summary
ConstructorsConstructorDescriptionDelegatingInvocableHandler
(List<InvocableHandlerMethod> handlers, InvocableHandlerMethod defaultHandler, Object bean, BeanExpressionResolver beanExpressionResolver, BeanExpressionContext beanExpressionContext, BeanFactory beanFactory, Validator validator) Construct an instance with the supplied handlers for the bean. -
Method Summary
Modifier and TypeMethodDescriptionprotected InvocableHandlerMethod
findHandlerForPayload
(Class<? extends Object> payloadClass) getBean()
Return the bean for this handler.protected InvocableHandlerMethod
getHandlerForPayload
(Class<?> payloadClass) Determine theInvocableHandlerMethod
for the provided type.getInvocationResultFor
(Object result, Object inboundPayload) Return the result of a method invocation by providing a result and payload.getMethodNameFor
(Object payload) Return a string representation of the method that will be invoked for this payload.boolean
Invoke the method with the given message.boolean
Return true if any handler method has an async reply type.protected boolean
matchHandlerMethod
(Class<?> payloadClass, InvocableHandlerMethod handler)
-
Constructor Details
-
DelegatingInvocableHandler
public DelegatingInvocableHandler(List<InvocableHandlerMethod> handlers, @Nullable InvocableHandlerMethod defaultHandler, Object bean, @Nullable BeanExpressionResolver beanExpressionResolver, @Nullable BeanExpressionContext beanExpressionContext, @Nullable BeanFactory beanFactory, @Nullable Validator validator) Construct an instance with the supplied handlers for the bean.- Parameters:
handlers
- the handlers.defaultHandler
- the default handler.bean
- the bean.beanExpressionResolver
- the resolver.beanExpressionContext
- the context.beanFactory
- the bean factory.validator
- the validator.- Since:
- 2.5.11
-
-
Method Details
-
getBean
Return the bean for this handler.- Returns:
- the bean.
-
isAsyncReplies
public boolean isAsyncReplies()Return true if any handler method has an async reply type.- Returns:
- the asyncReply.
- Since:
- 3.2
-
invoke
Invoke the method with the given message.- Parameters:
message
- the message.providedArgs
- additional arguments.- Returns:
- the result of the invocation.
- Throws:
Exception
- raised if no suitable argument resolver can be found, or the method raised an exception.
-
getHandlerForPayload
Determine theInvocableHandlerMethod
for the provided type.- Parameters:
payloadClass
- the payload class.- Returns:
- the handler.
-
findHandlerForPayload
@Nullable protected InvocableHandlerMethod findHandlerForPayload(Class<? extends Object> payloadClass) -
matchHandlerMethod
-
getMethodNameFor
Return a string representation of the method that will be invoked for this payload.- Parameters:
payload
- the payload.- Returns:
- the method name.
-
hasDefaultHandler
public boolean hasDefaultHandler() -
getInvocationResultFor
Return the result of a method invocation by providing a result and payload.- Parameters:
result
- the result.inboundPayload
- the payload.- Returns:
- the result of a method invocation.
- Since:
- 3.2
-