Gids voor Guava’s EventBus

1. Overzicht

Guava-bibliotheek biedt de EventBus die communicatie tussen componenten mogelijk maakt voor publicatie en abonneren. In deze zelfstudie bekijken we hoe u enkele van de functies van het EventBus.

2. Installatie

Om te beginnen voegen we de afhankelijkheid van de Google Guava-bibliotheek toe aan het pom.xml:

 com.google.guava guave 29.0-jre 
De laatste versie vind je hier.

3. Gebruik de EventBus

Laten we beginnen met een eenvoudig voorbeeld.

3.1. Opstelling

We beginnen met het bekijken van de EventBus voorwerp. Het kan luisteraars registreren en evenementen posten. Het gebruik ervan is net zo eenvoudig als het instantiëren van de klas:

EventBus eventBus = nieuwe EventBus ();

Guava-bibliotheek geeft u de vrijheid om de EventBus op een manier die het beste aansluit bij uw ontwikkelingsbehoeften.

3.2. Luisteraars creëren

We maken een listenerklasse met handlermethoden om specifieke gebeurtenissen te ontvangen. We annoteren de handler-methoden met @Abonneren. De methode accepteert als argument een object van hetzelfde type als de gebeurtenis die wordt gepost:
openbare klasse EventListener {privé statische int eventsHandled; @Subscribe openbare void stringEvent (String-gebeurtenis) {eventsHandled ++; }}

3.3. Luisteraars registreren

We kunnen ons inschrijven voor een evenement door ons te registreren EventListener klasse op de EventBus:
EventListener listener = nieuwe EventListener (); eventBus.register (luisteraar);

3.4. Registratie van luisteraars ongedaan maken

Als we om welke reden dan ook een klas uit de EventBus, dat kan ook eenvoudig worden gedaan:

eventBus.unregister (luisteraar);

3.5. Gebeurtenissen plaatsen

We kunnen ook evenementen plaatsen met de EventBus:
@Test openbare leegte gegevenStringEvent_whenEventHandled_thenSuccess () {eventBus.post ("String Event"); assertEquals (1, listener.getEventsHandled ()); }

3.6. Aangepaste evenementen plaatsen

We kunnen ook een aangepaste evenementklasse specificeren en dat evenement posten. We beginnen met het maken van een evenement op maat:
openbare klasse CustomEvent {privé String-actie; // standaard getters / setters en constructeurs}

Een handlermethode toevoegen in het EventListener klasse voor dat evenement:

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

We kunnen nu ons aangepaste evenement plaatsen:

@Test openbare ongeldige gegevenCustomEvent_whenEventHandled_thenSuccess () {CustomEvent customEvent = nieuwe CustomEvent ("Custom Event"); eventBus.post (customEvent); assertEquals (1, listener.getEventsHandled ()); }

3.7. Omgaan met een Afgemeld Evenement

We zijn voorzien van een DeadEvent klasse waarmee we alle evenementen kunnen afhandelen die geen luisteraars hebben. We kunnen een methode toevoegen om de DeadEvent klasse:

@Subscribe openbare ongeldige handleDeadEvent (DeadEvent deadEvent) {eventsHandled ++; }

4. Conclusie

In deze tutorial hebben we een eenvoudig voorbeeld gebruikt als gids voor het gebruik van de Guava EventBus.

Je kunt de volledige broncode en alle codefragmenten voor dit artikel vinden op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found