GEDOPLAN
Jakarta EE (Java EE)

CDI 4.0: Events mit BeanManager feuern

Jakarta EE (Java EE)
match 1899824 640

CDI Events können mit Hilfe einer Event Source gefeuert werden, z. B.

@Inject
@Urgent
Event<Message> urgentMessageEventSource;
...
urgentMessageEventSource.fire(new Message(...));

Im angedeuteten Code ist @Urgent ein Qualifier und Message eine beliebige Java-Klasse.

Bis CDI 3 kann zum Versenden von Events auch ein BeanManager genutzt werden:

@Inject
BeanManager beanManager;
...
beanManager.fireEvent(new Message(...), new AnnotationLiteral<Urgent>() {});

BeanManager#fireEvent steht in CDI 4 nicht mehr zur Verfügung. Stattdessen kann getEvent/select/fire verwendet werden:

beanManager.getEvent().select(new AnnotationLiteral<Urgent>() {}).fire(new Message(...));

Die neue Form hat den Vorteil, dass statt fire auch fireAsync zur Verfügung steht und somit auch asynchron versendet werden kann.

1 Kommentar. Hinterlasse eine Antwort

  • Avatar-Foto
    FireworkStore.com
    20. März 2024 4:43

    This is a great post. It’s very informative and well written. I’ll check back for more posts like this one.

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!