Maison  >  Article  >  Java  >  Analyse d'un exemple de modèle d'écoute SpringBoot

Analyse d'un exemple de modèle d'écoute SpringBoot

王林
王林avant
2023-05-12 21:40:181076parcourir

1. Event ApplicationEvent

ApplicationEvent est une classe abstraite. Sa relation d'héritage est développée sur l'idée comme le montre la figure :

Analyse dun exemple de modèle découte SpringBoot#🎜. 🎜##🎜🎜 #On constate que les types d'événements définis par SpringBoot sont extrêmement riches.

2. Listener ApplicationListener

ApplicationListener est une interface Nous pouvons également définir notre propre écouteur en implémentant cette interface de la même manière que l'initialiseur d'événement à charger.

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

On voit que dans le code il accepte un événement générique mentionné ci-dessus, qui représente l'événement qui préoccupe cet auditeur

Il y a aussi une implémentation d'écoute ; La méthode d'écoute consiste à implémenter l'interface SmartApplicationListener. SmartApplicationListener hérite de l'interface ApplicationListener de cette manière, vous pouvez enregistrer plusieurs événements intéressants en même temps. Il vous suffit d'implémenter la méthode supportsEventType de l'interface.

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. Diffuseur d'événements ApplicationEventMulticaster

ApplicationEventMulticaster est une interface qui définit des méthodes telles que l'ajout d'écouteurs, la suppression d'écouteurs et la propagation d'événements ; implémente SimpleApplicationEventMulticaster pour nous. La relation d'héritage de ce diffuseur d'événements est comme indiqué dans la figure :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer