Class ApplicationListenerMethodAdapter
- All Implemented Interfaces:
EventListener
,ApplicationListener<ApplicationEvent>
,GenericApplicationListener
,SmartApplicationListener
,Ordered
- Direct Known Subclasses:
TransactionalApplicationListenerMethodAdapter
GenericApplicationListener
adapter that delegates the processing of
an event to an EventListener
annotated method.
Delegates to processEvent(ApplicationEvent)
to give subclasses
a chance to deviate from the default. Unwraps the content of a
PayloadApplicationEvent
if necessary to allow a method declaration
to define any arbitrary event type. If a condition is defined, it is
evaluated prior to invoking the underlying method.
- Since:
- 4.2
- Author:
- Stephane Nicoll, Juergen Hoeller, Sam Brannen
-
Field Summary
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
ConstructorDescriptionApplicationListenerMethodAdapter
(String beanName, Class<?> targetClass, Method method) Construct a new ApplicationListenerMethodAdapter. -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
Invoke the event listener method with the given argument values.protected String
Return the condition to use.protected String
Determine the default id for the target listener, to be applied in case of noannotation-specified id value
.protected String
getDetailedErrorMessage
(Object bean, String message) Add additional details such as the bean type and method signature to the given error message.Return an optional identifier for the listener.int
getOrder()
Determine this listener's order in a set of listeners for the same event.protected Object
Return the target bean instance to use.protected Method
Return the target listener method.protected void
protected void
handleResult
(Object result) void
Handle an application event.void
processEvent
(ApplicationEvent event) Process the specifiedApplicationEvent
, checking if the condition matches and handling a non-null result, if any.protected Object[]
resolveArguments
(ApplicationEvent event) Resolve the method arguments to use for the specifiedApplicationEvent
.boolean
supportsEventType
(ResolvableType eventType) Determine whether this listener actually supports the given event type.boolean
supportsSourceType
(Class<?> sourceType) Determine whether this listener actually supports the given source type.toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.context.event.GenericApplicationListener
supportsEventType
-
Field Details
-
logger
-
-
Constructor Details
-
ApplicationListenerMethodAdapter
Construct a new ApplicationListenerMethodAdapter.- Parameters:
beanName
- the name of the bean to invoke the listener method ontargetClass
- the target class that the method is declared onmethod
- the listener method to invoke
-
-
Method Details
-
onApplicationEvent
Description copied from interface:ApplicationListener
Handle an application event.- Specified by:
onApplicationEvent
in interfaceApplicationListener<ApplicationEvent>
- Parameters:
event
- the event to respond to
-
supportsEventType
Description copied from interface:GenericApplicationListener
Determine whether this listener actually supports the given event type.- Specified by:
supportsEventType
in interfaceGenericApplicationListener
- Parameters:
eventType
- the event type (nevernull
)
-
supportsSourceType
Description copied from interface:SmartApplicationListener
Determine whether this listener actually supports the given source type.The default implementation always returns
true
.- Specified by:
supportsSourceType
in interfaceSmartApplicationListener
- Parameters:
sourceType
- the source type, ornull
if no source
-
getOrder
public int getOrder()Description copied from interface:SmartApplicationListener
Determine this listener's order in a set of listeners for the same event.The default implementation returns
Ordered.LOWEST_PRECEDENCE
.- Specified by:
getOrder
in interfaceOrdered
- Specified by:
getOrder
in interfaceSmartApplicationListener
- Returns:
- the order value
- See Also:
-
getListenerId
Description copied from interface:SmartApplicationListener
Return an optional identifier for the listener.The default value is an empty String.
-
getDefaultListenerId
Determine the default id for the target listener, to be applied in case of noannotation-specified id value
.The default implementation builds a method name with parameter types.
- Since:
- 5.3.5
- See Also:
-
processEvent
Process the specifiedApplicationEvent
, checking if the condition matches and handling a non-null result, if any. -
resolveArguments
Resolve the method arguments to use for the specifiedApplicationEvent
.These arguments will be used to invoke the method handled by this instance. Can return
null
to indicate that no suitable arguments could be resolved and therefore the method should not be invoked at all for the specified event. -
handleResult
-
handleAsyncError
-
doInvoke
Invoke the event listener method with the given argument values. -
getTargetBean
Return the target bean instance to use. -
getTargetMethod
Return the target listener method.- Since:
- 5.3
-
getCondition
Return the condition to use.Matches the
condition
attribute of theEventListener
annotation or any matching attribute on a composed annotation that is meta-annotated with@EventListener
. -
getDetailedErrorMessage
Add additional details such as the bean type and method signature to the given error message.- Parameters:
message
- error message to append the HandlerMethod details to
-
toString
-