---
title: 'Gedärme: Event Bus für Google Guice'
url: 'https://tutego.de/blog/javainsel/2010/06/gedrme-event-bus-fr-google-guice'
markdown: 'https://tutego.de/blog/javainsel/2010/06/gedrme-event-bus-fr-google-guice.md'
date: '2010-06-02'
description: 'Zwei Konzepte sind für mich zentral: Dependency Injection und Events. Nach dem jetzt DI durch CDI standardisiert ist, steht das für einen Event Bus noch aus. (CDI-kann man aber so interpretieren.) Über eine Lösung habe ich schon geschrieben: . Ein Event Bus sollte natürlich mit einem DI-Container h…'
taxonomy:
  category:
    - 'Open Source'
---

# Gedärme: Event Bus für Google Guice

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Gedärme: Event Bus für Google Guice

02.06.2010 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

Zwei Konzepte sind für mich zentral: Dependency Injection und Events. Nach dem jetzt DI durch CDI standardisiert ist, steht das für einen Event Bus noch aus. (CDI-kann man aber so interpretieren.) Über eine Lösung habe ich schon geschrieben: . Ein Event Bus sollte natürlich mit einem DI-Container harmonieren. Nutzer von Google Guice können das mit Guts (englisch für Gedärme aber auch Mut) tun: . Die Doku zeigt wie es geht:

1\. Modul aufbauen

```java
Injector injector = Guice.createInjector(new EventModule(), new AbstractModule()
 {
     @Override protected void configure()
     {
         Events.bindChannel(binder(), Integer.class);
     }
 });
```

Wie man sieht, wird ein Ereignistyp (hier `Integer`) registriert. Der Kanal kann auch einen Namen tragen:

```java
Events.bindChannel(binder(), Integer.class, "TOPIC1");
```

2\. Der Kanal wird nun injziert und man kann Ereignisse versenden:

```java
public class Supplier
 {
     @Inject Supplier(Channel channel)
     {
         // Send an event to this channel (i.e. to all its consumers)
         channel.publish(10);
         ...
     }
     ...
 }
```

3\. Zum Empfang:

```java
 public class MyClass
 {
     @Consumes public void push(Integer event)
     {
         ...
     }
     ...
 }
```

Kategorien: [Open Source](https://tutego.de/blog/javainsel/category/open-source/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Next: [JDK 7 Milestone 8 (build 96) verfügbar](https://tutego.de/blog/javainsel/2010/06/jdk-7-milestone-8-build-96-verfgbar.md)
