Blog

Alle Beiträge mit dem Tag Dependency Injection

@PostConstruct mit Guice

Guice ist ein leichtgewichtiges DI-Framework von Google, das ich, wie bereits in einigen Artikeln erwähnt, gern an Stelle von Spring einsetze, wenn ich mit einem Container ohne CDI-Support arbeite, zum Beispiel JBoss 5.1 oder Java SE. Guice unterstützt JSR-330 (Dependency Injection), leider jedoch nicht JSR-250 (Common Annotations).
weiterlesen

Das reine Vergnügen – RIA mit Vaadin und Guice

Vorweg: Vaadin ist cool. Das auf dem Google Web Toolkit basierende Framework erlaubt die komponenten-orientierte Entwicklung hochqualitativer Rich Internet Applications. Dabei wird weitestgehend vom HTML/Servlet Code abstrahiert – das Programmiermodell erinnert somit stark an die vom Desktop gewohnte Entwicklung mit Swing oder RCP. JSP-Taglibs, XML-Wüsten und Platzhalter-Replacements sucht man vergebens, und man vermisst sie auch nicht.

Eine typische Vaadin-Applikation (aus Book of Vaadin, Getting started):

public void init() {
   final Window mainWindow =
      new Window("Myproject Application");

   Label label = new Label("Hello Vaadin user");
   mainWindow.addComponent(label);

   mainWindow.addComponent(
      new Button("What is the time?",
         new Button.ClickListener() {
         public void buttonClick(ClickEvent event) {
            mainWindow.showNotification(
               "The time is " + new Date());
         }
      }));

 setMainWindow(mainWindow);
}

Sobald die Anwendung etwas größer wird, bekommt man jedoch zwangsläufig die klassischen Stand-Alone-Anwendungsprobleme: verschachtelte Komponenten, ausgelagerte Handler, implementierte Listener, gekapselte Service-Facaden … ein Haufen Instanzen will erzeugt und verwaltet werden. Nebenbei arbeitet man auf 3 Scopes (Application, Session, Request), bemüht sich um Separation of Concern und achtet auf maximale Testbarkeit.
Das wird „per Hand“ schnell unübersichtlich. Naheliegend ist, sich bei der Verwaltung der Instanzen helfen zu lassen. Wenn man das Pech hat, nicht auf JEE6 und CDI zurückgreifen zu können (konkret arbeiten wir nach wie vor auf JBoss 5.1), ist die Frage:

Wie?
Oder anders formuliert: Spring oder Guice?

weiterlesen

Freundliche Eindringlinge – Moderne Web-Applikationen mit CDI

Am 07.12.2011 war die JUGHH bei uns zu Gast, und ich habe im Vortrag „Freundliche Eindringlinge – Moderne Web-Appliaktionen mit CDI“ die Neuerungen von CDI anhand der Beispielapplikation „Friendly Invaders“ vorgestellt. Für alle, die den Vortrag noch mal Revue passieren lassen wollen, den Termin verpasst haben oder denen einfach alles zu schnell ging, sind im folgenden die Vortragsfolien, die Beispielapplikation sowie die „Tonspur“ in Schriftform zu finden.
weiterlesen

Freundliche Eindringlinge: CDI seams to let EJB spring (JSR 299) – Teil 3

Nachdem im ersten Teil der Blogserie „Freundliche Eindringlinge: CDI seams to let EJB spring (JSR 299)“ ein wenig Theorie zu CDI vermittelt wurde, die Dependeny Injection (DI) vorgestellt und im zweiten Teil die Werkzeuge Qualifier, Alternativen, Stereotypen, EL-Namen und Scopes vorgestellt wurden, sollen in diesem abschließenden Artikel die Werkzeuge Events, Interzeptor-Bindings, Dekoratoren und Producer eingeführt werden. Mit der Beispielapplikation „Friendly Invaders“ wird die gesamte Werkzeugkiste in der Praxis zum Fliegen gebracht.

weiterlesen

Freundliche Eindringlinge: CDI seams to let EJB spring (JSR 299) – Teil 2

Nachdem im ersten Teil der Blogserie „Freundliche Eindringlinge: CDI seams to let EJB spring (JSR 299)“ ein wenig Theorie zu CDI vermittelt und auch schon die Dependency Injection (DI) mit den Werkzeugen der Referenzimplementierung Weld aus dem Hause JBoss vorgestellt wurde, sollen in diesem Artikel die Werkzeuge Qualifier, Alternativen, Stereotypen, EL-Namen und Scopes vorgestellt werden.

weiterlesen