Heim  >  Artikel  >  Java  >  Beispielanalyse des SpringBoot-Listener-Musters

Beispielanalyse des SpringBoot-Listener-Musters

王林
王林nach vorne
2023-05-12 21:40:181079Durchsuche

1. Event ApplicationEvent

ApplicationEvent ist eine abstrakte Klasse, die auf der in der Abbildung gezeigten Idee basiert:

Beispielanalyse des SpringBoot-Listener-Musters#🎜 🎜##🎜🎜 #Es ist ersichtlich, dass die von SpringBoot definierten Ereignistypen äußerst umfangreich sind.

2. Listener ApplicationListener##

ApplicationListener ist eine Schnittstelle, indem wir diese Schnittstelle auf ähnliche Weise wie den Ereignisinitialisierer implementieren.

@FunctionalInterface
public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {
	/**
	 * Handle an application event.
	 * @param event the event to respond to
	 */
	void onApplicationEvent(E event);
}

Wir können sehen, dass im Code ein oben erwähntes generisches Ereignis akzeptiert wird, das das Ereignis darstellt, um das sich dieser Listener kümmert;

Es gibt auch eine Implementierung des Zuhörens Die Methode des Listeners besteht darin, die Schnittstelle „SmartApplicationListener“ zu implementieren. Durch die Implementierung des Listeners auf diese Weise können Sie nur die Methode „supportsEventType“ der Schnittstelle implementieren.

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&#39;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;
	}
}
#🎜 🎜#3. Event Broadcaster ApplicationEventMulticaster

ApplicationEventMulticaster ist eine Schnittstelle, die Methoden wie das Hinzufügen von Listenern, das Löschen von Listenern und die Weitergabe von Ereignissen definiert; implementiert SimpleApplicationEventMulticaster für uns. Die Vererbungsbeziehung dieses Event-Broadcasters ist wie in der Abbildung dargestellt:

Das obige ist der detaillierte Inhalt vonBeispielanalyse des SpringBoot-Listener-Musters. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen