Package org.springframework.context.event

# Interface GenericApplicationListener

All Superinterfaces:
  `ApplicationListener<ApplicationEvent>`, `EventListener`, `org.springframework.core.Ordered`, `SmartApplicationListener`

All Known Implementing Classes:
  `ApplicationListenerMethodAdapter`, `GenericApplicationListenerAdapter`, `SourceFilteringListener`

public interface GenericApplicationListener extends SmartApplicationListener
Extended variant of the standard `ApplicationListener` interface, exposing further metadata such as the supported event and source type.

As of Spring Framework 4.2, this interface supersedes the Class-based `SmartApplicationListener` with full handling of generic event types. As of 5.3.5, it formally extends `SmartApplicationListener`, adapting `supportsEventType(Class)` to `supportsEventType(ResolvableType)` with a default method.

Since:
  4.2
Author:
  Stephane Nicoll, Juergen Hoeller
See Also:
  - `SmartApplicationListener`
  - `GenericApplicationListenerAdapter`

## Field Summary

### Fields inherited from interface org.springframework.core.Ordered

`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

## Method Summary

Modifier and Type
Method
Description
`static <E extends ApplicationEvent>
GenericApplicationListener`
`forEventType(Class<E> eventType, Consumer<E> consumer)`
Create a new `ApplicationListener` for the given event type.
`default boolean`
`supportsEventType(Class<? extends ApplicationEvent> eventType)`
Overrides `SmartApplicationListener.supportsEventType(Class)` with delegation to `supportsEventType(ResolvableType)`.
`boolean`
`supportsEventType(org.springframework.core.ResolvableType eventType)`
Determine whether this listener actually supports the given event type.

### Methods inherited from interface org.springframework.context.ApplicationListener

`onApplicationEvent, supportsAsyncExecution`

### Methods inherited from interface org.springframework.context.event.SmartApplicationListener

`getListenerId, getOrder, supportsSourceType`

## Method Details

### supportsEventType

default boolean supportsEventType(Class<? extends ApplicationEvent> eventType)
Overrides `SmartApplicationListener.supportsEventType(Class)` with delegation to `supportsEventType(ResolvableType)`.

Specified by:
  `supportsEventType` in interface `SmartApplicationListener`
Parameters:
  `eventType` - the event type (never `null`)

### supportsEventType

boolean supportsEventType(org.springframework.core.ResolvableType eventType)
Determine whether this listener actually supports the given event type.

Parameters:
  `eventType` - the event type (never `null`)

### forEventType

static <E extends ApplicationEvent> GenericApplicationListener forEventType(Class<E> eventType, Consumer<E> consumer)
Create a new `ApplicationListener` for the given event type.

Type Parameters:
  `E` - the specific `ApplicationEvent` subclass to listen to
Parameters:
  `eventType` - the event to listen to
  `consumer` - the consumer to invoke when a matching event is fired
Returns:
  a corresponding `ApplicationListener` instance
Since:
  6.1.3