ApplicationEvent is an abstract class. Its inheritance relationship is expanded on the idea as shown in the figure:
##It can be seen that the event types defined by SpringBoot is extremely rich. 2. Listener ApplicationListenerApplicationListener is an interface. We can also define our own listener by implementing this interface, which can be loaded in a similar way to the event initializer.@FunctionalInterface public interface ApplicationListener<E extends ApplicationEvent> extends EventListener { /** * Handle an application event. * @param event the event to respond to */ void onApplicationEvent(E event); }
public interface SmartApplicationListener extends ApplicationListener<ApplicationEvent>, Ordered { /** * Determine whether this listener actually supports the given event type. * @param eventType the event type (never {@code null}) */ boolean supportsEventType(Class<? extends ApplicationEvent> eventType); /** * Determine whether this listener actually supports the given source type. * <p>The default implementation always returns {@code true}. * @param sourceType the source type, or {@code null} if no source */ default boolean supportsSourceType(@Nullable Class<?> sourceType) { return true; } /** * Determine this listener's order in a set of listeners for the same event. * <p>The default implementation returns {@link #LOWEST_PRECEDENCE}. */ @Override default int getOrder() { return LOWEST_PRECEDENCE; } }
The above is the detailed content of SpringBoot listener pattern example analysis. For more information, please follow other related articles on the PHP Chinese website!