Guide des bus sur événement de Guava

Guide de l’événement Bus de Goyave

1. Vue d'ensemble

La bibliothèque Guava fournit lesEventBus qui permettent la communication publication-abonnement entre les composants. Dans ce tutoriel, nous verrons comment utiliser certaines des fonctionnalités desEventBus.

2. Installer

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


    com.google.guava
    guava
    21.0

La dernière version peut être trouvéehere.

3. Utilisation desEventBus

Commençons par utiliser un exemple simple.

3.1. Installer

Nous commençons par regarder l'objetEventBus. Il peut enregistrer des auditeurs et poster 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 lesEventBus de la manière qui convient le mieux à vos besoins de développement.

3.2. Créer des auditeurs

Nous créons une classe d'écoute qui a des méthodes de gestionnaire 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 d'auditeurs

Nous pouvons nous abonner à un événement en enregistrant notre classeEventListener sur lesEventBus:

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 desEventBus, cela peut également être fait facilement:

eventBus.unregister(listener);

3.5. Affichage d'événements

Nous pouvons également publier des événements avec lesEventBus:

@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 poster 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 classeEventListener 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. Gestion d'un événementUnsubscribed

Nous sommes fournis avec une classeDeadEvent 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 classeDeadEvent:

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

4. Conclusion

Dans ce didacticiel, nous avons utilisé un exemple simple comme guide sur la façon d'utiliser les GuavaEventBus.

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