Guide de l'EventBus de Guava

1. Vue d'ensemble

La bibliothèque Guava fournit l' EventBus qui permet la communication publication-abonnement entre les composants. Dans ce tutoriel, nous verrons comment utiliser certaines des fonctionnalités de l' EventBus .

2. Configuration

Pour commencer, nous ajoutons la dépendance de la bibliothèque Google Guava dans le pom.xml:

 com.google.guava guava 29.0-jre 
La dernière version peut être trouvée ici.

3. Utilisation de l' EventBus

Commençons par utiliser un exemple simple.

3.1. Installer

Nous commençons par regarder l' objet EventBus . Il peut enregistrer des auditeurs et publier des événements. Son utilisation est aussi simple que d'instancier la classe:

EventBus eventBus = new EventBus();

La bibliothèque Guava vous donne la liberté d'utiliser l' EventBus de la manière la mieux adaptée à vos besoins de développement.

3.2. Créer des auditeurs

Nous créons une classe d'écouteur qui a des méthodes de gestion pour recevoir des événements spécifiques. Nous annotons les méthodes du gestionnaire avec @Subscribe . La méthode accepte comme argument un objet du même type que l'événement en cours de publication:
public class EventListener { private static int eventsHandled; @Subscribe public void stringEvent(String event) { eventsHandled++; } }

3.3. Enregistrement des auditeurs

Nous pouvons nous abonner à un événement en enregistrant notre classe EventListener sur EventBus :
EventListener listener = new EventListener(); eventBus.register(listener);

3.4. Annulation de l'enregistrement des auditeurs

Si, pour une raison quelconque, nous voulons désinscrire une classe de l' EventBus , cela peut également être fait facilement:

eventBus.unregister(listener);

3.5. Affichage d'événements

Nous pouvons également publier des événements avec l' EventBus :
@Test public void givenStringEvent_whenEventHandled_thenSuccess() { eventBus.post("String Event"); assertEquals(1, listener.getEventsHandled()); }

3.6. Publication d'événements personnalisés

Nous pouvons également spécifier une classe d'événement personnalisée et publier cet événement. Nous commençons par créer un événement personnalisé:
public class CustomEvent { private String action; // standard getters/setters and constructors }

Ajout d'une méthode de gestionnaire dans la classe EventListener pour cet événement:

@Subscribe public void someCustomEvent(CustomEvent customEvent) { eventsHandled++; }

Nous pouvons maintenant publier notre événement personnalisé:

@Test public void givenCustomEvent_whenEventHandled_thenSuccess() { CustomEvent customEvent = new CustomEvent("Custom Event"); eventBus.post(customEvent); assertEquals(1, listener.getEventsHandled()); }

3.7. Gérer un événement désabonné

Nous sommes fournis avec une classe DeadEvent qui nous permet de gérer tous les événements qui n'ont pas d'écouteurs. Nous pouvons ajouter une méthode pour gérer la classe DeadEvent :

@Subscribe public void handleDeadEvent(DeadEvent deadEvent) { eventsHandled++; }

4. Conclusion

Dans ce tutoriel, nous avons utilisé un exemple simple comme guide sur la façon d'utiliser le Guava EventBus .

Vous pouvez trouver le code source complet et tous les extraits de code pour cet article sur GitHub.