... hat sich vielleicht schon mancher nach der Online-Lektüre der Spring-Dokumentation gefragt. Auch die halboffizielle Bibel der Spring-Entwickler Johnson und Höller hilft da nicht wirklich weiter, da sie fast deckungsgleich mit dem Inhalt der Website ist - eher ein Nachschlagewerk als eine Einführung.
Hier springt das Buch von Eberhard Wolff in die Bresche. Seine "nur" 300 Seiten reichen natürlich bei weitem nicht, um alle Features und API-Anbindungen von Spring auch nur zu streifen, geschweige denn in aller Tiefe zu diskutieren. Aber das Buch erläutert kompakt und direkt alle wichtigen Konzepte des Spring-Frameworks. Dependency Injection (DI), Aspektorientierung und Testunterstützung nehmen dabei besonders viel Raum ein und das ist gut so, denn einem geübten Java-Entwickler springen dabei die neuen Möglichkeiten mit Spring und deren unmittelbarer Nutzen für die eigene Arbeit ins Auge - man bekommt Lust, gleich den Download zu starten.
Immer wieder finden sich z.B. Listen von Klassen eingestreut, mit knappen Kommentaren, was sich jeweils mit welcher Variante anstellen läßt. So bekommt man schnell a) einen sinnvollen Überblick, was Spring alles bietet und b) welche Features sofort für die eigene Arbeit wertvoll sein könnten. Die Online-Dokumentation oder die javadocs geben das einfach nicht her. In Wolffs Buch sind die Beispiele aufs Wesentliche eingedampft und sauber aufgebaut (auch vom Layout her). Zielgruppe scheint generell der erfahrene Java-Entwickler zu sein, der keinen 900-Seiten-Backstein fürs Regal sucht, sondern sich nach "den" essentiellen Codeschnipseln auf den ersten Blick sehnt ("aha, *so* geht das also in Spring!").
Ein interessanter Aspekt an Spring ist die Einbindung der APIs von zahlreichen Open-Source-Projekten. Man bekommt beispielsweise allein für Persistenzfragen ein halbes Dutzend Frameworkanbindungen zur Auswahl. Und statt eine Fremdbibliothek nach dem immergleichen Schema von Hand zu benutzen (1. Ressourcen allokieren, 2. eigentlichen Aufruf eines features, 3. Ressourcen wieder freigeben), kann man in Spring "Templates" benutzen, die die Schritte 1 und 3 kapseln, man kümmert sich also nur um das, was man mit der Fremdbibliothek ursprünglich erreichen wollte. "Templates" sind m.E. ein weiteres zentrales Konzept von Spring, das in Wolffs Buch eine etwas prominentere Position verdient hätte.
Die letzten Kapitel stellen beinahe traurig zusammen, was im Buch nicht ausführlich behandelt werden konnte; auch hier sieht man am Text, dass Wolff weiss und ausprobiert hat, was er so alles wegläßt. Eine gute Bibliographie und Linksammlung schließt sich an. Und noch ein Plus: fast alle Diagramme im Buch sind in fehlerfreiem UML gehalten. Gerade solche Details unterscheiden ein profundes Buch von einem hastig zusammengestopselten.
Summa summarum kann ich das Buch jedem erfahrenen Java-Entwickler empfehlen, der Spring kennenlernen will und seine konkreten Fragen nicht mit javadocs beantwortet haben möchte, sondern die anstrengende Dienstleistung einer wirklich guten Aufbereitung zu schätzen weiß.