Haftpflicht Blogger
Virtual Server von Host Europe

Buchbesprechung: Just Spring

| 15. Oktober 2014 | Keine Kommentare

Das Buch Just Spring* [1] vom Autor Madhusudhan Konda erschienen im O’Reilly Verlag hat 62 Seiten und verspricht, einen schnellen Überblick über das Spring Framework zu geben.

In der Tat kann man es an einem Tag durchlesen und erhält damit einen schnellen Einstieg in das Spring Framework.

Welche Spring Version?

Was ich lange gesucht habe, ist ein Hinweis, auf welche Spring Version (2.5 oder 3.0) sich der Autor bezieht. Im Buch selbst findet sich hierfür leider keine Information.  Annotations werden in keinem Codebeispiel verwendet und auch in keinem Kapitel erwähnt. Dennoch legt das Buch-Erscheinungdatum von 2011 eine Version 3.0 nahe, da diese im Jahr 2009 herauskam.  In einer XML-Datei findet sich dann auch eine entsprechende Namespace-Anweisung für 3.0.

Da zum Zeitpunkt dieses Artikels das Spring-Framework in der Version 4.1.2 vorliegt, stellt sich natürlich die Frage, in wieweit dieses schnelle Einführungsbuch in Spring nun veraltet ist und ob es überhaupt noch Sinn macht, dieses zu lesen.

Meine Antwort wäre ein klares „JA“.  Was mich eben noch gestört hatte (keine Bezugsversion für Spring im Buch) entpuppt sich im Nachhinein als Vorteil. Das Buch ist fast zeitlos geschrieben und führt leicht verständlich in die Grundprinzipien von Spring ein.

Sicherlich würde eine zweite Auflage des Buchs mit einem Kapitel über Annotations der Aktualität des Buchs gut tun, aber ansonsten würde ich im Rahmen der Kurzeinführung den  Themenumfang so belassen.

Kapitelübersicht

Kapitel 1: Spring Basics

Dies ist ein Einführungskapitel, indem ausgehend von einem Codebeispiel mit starker Kopplung (object coupling problem) gezeigt wird, wie Spring unter Verwendung von Interfaces und des Spring-Containers dieses Problem löst. Außerdem werden die beiden Injection Types (Constructor Type Injection / Setter Type Injection) und das Property File eingeführt.

 

Kapitel 2: Spring Beans

In diesem Kapitel geht es hauptsächlich um den Lifecycle der Spring Beans, d.h. der vom Spring-Container verwalteten Klassen.

  • Es werden Method-Hooks eingeführt, d.h. Methoden die vor bzw. nach der Erzeugung einer Spring Bean abgearbeitet werden.
  • Dann geht der Autor auf den Scope der Beans ein, dass der Default-Scope Singleton ist und dass hier nicht das Singleton Pattern im Hinterkopf haben sollte.
    Zitat [1]: „Spring Singleton is a singleton per context or container, whereas Java Singleton is per process and per class loader“
  • Das Thema Property File des ersten Kapitels wird ergänzt und man erfährt die XML-Notation um objekt-references, lists, custom classes oder andere Collections durch Injection zu übergeben.

 

Kapitel 3: Advanced Concepts

Die in den ersten beiden Kapiteln gegebenen Information werden weiter verfeinert und um weitere Spring-Mechanismen ergänzt.

Der Autor schreibt über

  • die drei Implementierungen von ApplicationContext (FileSystemXmlApplicationContext, ClassPathXmlApplicationContext, WebXmlApplicationContext)
  • dass es neben der Constructor-Type und Setter-Type Injection auch noch zwei weitere Methoden der Instanzierung der Spring Beans gibt (Static Methods, Factory Methods)
  • dass es mit postProcessBeforeInitialization und postProcessAfterInitialization auch weitere Eingriffsmöglichkeiten in den Lifecycle einer Spring Bean gibt
  • dass Spring Beans ein Event-Handling haben, dass man allerdings beim Einsatz  sehr, sehr Vorsichtig sein sollte.
    Zitat [1]: „Spring’s event handling is single-threaded. It is primarily syncronous in nature. That is, if an event is published, until and unless all the receivers get the message, the processes are blocked and the flow will not continue.“
  • die verschiedenen Arten von Autowiring
    • Autowiring by Name
    • Autowiring by Type
    • Autowiring by Constructor
    • Mixed Autowiring

 

Kapitel 4: Spring JMS

Einführung des Spring JmsTemplates anhand von Codebeispielen.

Spring JMS gehört meiner Meinung nach nicht zum Spring Core, sondern ist ein Erweiterungsmodul, ebenso wie das im Kapitel 5 verwendete Modul Spring Data. Es zeigt aber die Modul-Philosophie des Spring Frameworks.  Man kann für alles andere Frameworks (hier für JMS) einsetzen, die vielleicht leistungsstärker sind oder auch nachsehen, ob es ein Spring-Erweiterungsmodul davon gibt.

 

Kapitel 5: Spring Data

Einführung des Spring JdbcTemplates anhand von Codebeispielen.

Spring Data dürfte wohl das am häufigsten verwendete Zusatzmodul sein, gerade auch im Hinblick auf die Verknüpfung von Spring mit Jdbc bzw. Hibernate.

In diesem Kapitel werden die Grundzüge des Jdbc-CRUD-Zugriffs über Spring erläutert und kurz (ca. zwei Seiten) auf die Verknüpfung mit Hibernate eingegangen.

Das Codebeispiel ist gut erläutert und nachzuprogrammieren, es wird für das Beispiel allerding das JDBC-Framework von Apache-commons-DBCP genommen. Wer lieber ein JdbcTemplate Beispiel mit einer MySQL-DB Treiberkonfiguration haben möchte, dem empfehle ich den Artikel „Spring JDBC Example“ auf Tutorialspoint [6]

 

Mein Fazit:

Meiner Meinung nach gelingt es dem Autor gut, in jedem Kapitel, die Themen auf den Kern herunterzubrechen und mit einfachen Code-Schnippseln zu verdeutlichen.

Es ist ein Einführungsbuch für Java-Entwickler in die Thematik und verschafft einen schnellen Überblick (roten Faden) über Spring. Die Detailkenntnisse lassen sich dann in einem zweiten Schritt aus anderen Büchern erarbeiten.

Was man vom Buch nicht erwarten sollte

Zielgruppe: Es ist ein Einsteigerbuch zum Thema Spring für Entwickler mit entsprechendem Java-Kenntnissen. Es ist kein Buch für Java-Anfänger.

Entwicklungsumgebung: Es ist eine Kurzeinführung des Spring Frameworks, d.h. es findet sich (natürlich) kein Kapitel zum Aufsetzen einer Spring-Entwicklungsumgebung.

Aktualität: Nicht abgedeckt sind die Neuerungen (insbes. Annotations) der aktuellen Spring Version.

Codevollständigkeit:  Im Buch selbst werden alle Klassencodestellen und XML-Dateien aufgeführt, die man zum Verständnis braucht.  Der vollständige Sourcecode findet sich auf einer Downloadseite des Verlags.

Buch Alternativen

Spring – A Developers Notebook, O’Reilly [2]

Ich habe die „Updated“ Version, 2005 von A. Tate gelesen. Das Buch ist dermaßen oberflächlich und voller Fehler in den Codebeispielen, dass ich nur davon abraten kann ([4] O’Reilly Errata). Das Buch wurde wohl 2009 nochmals gedruckt, aber wie man in der Buchinformation lesen kann, erhält man nach wie vor die 1. Auflage.

Pro Spring 2.5, Apress [3]

Wer tiefer in Spring einsteigen möchte, dem sei „Pro Spring 2.5“ von Jan Machacek, erschienen im Apress Verlag [2] von mir empfohlen. Das Buch „Pro Spring“ spielt in einer anderen Liga, ist viel anspruchsvoller und wie der Titel zeigt (Version 2.5) bezieht es sich nicht auf die aktuelle Spring Version, kann aber doch als „das“ Referenzbuch bezeichnet werden.

Hinweis:  Es gibt vom Apress-Verlag auch ein Buch „Pro Spring“ und „Pro Spring 3“ von Chris Schaefer/Clarence Ho/Rob Harrop. Das sind vollkommen andere Bücher!

Obige Buchbesprechung

Just Spring*, O’Reilly [1]

Autor: Madhusdhan Konda
Länge: 96 Seiten (Buchausgabe)
Sprache: Englisch
Auflage: 1 (22. Juli 2011)
Preis: ca. 14 EUR

Anzeigen

Viel Spaß mit dem Spring-Framework

Manfred

Siehe auch:

[1] Madhusudhan Konda: Just Spring*, O’Reilly 2011, ISBN  978-1-449-30640-3

[2] Bruce A. Tate: Spring – A Developer’s Notebook*, O’Reilly 2005, ISBN  0-596-00910-6

[3] Jan Machacek et al.: Pro Spring 2.5*, Apress, ISBN  978-81-8489-054-9

[4] O’Reilly: Errata zu „Spring: A Developers Notebook“

[5] Wikipedia: Spring Framework, Liste von z.Zt. 21 Erweiterungen (Data, Batch, WebServices, Android, …) zu Spring

[6] Tutorialspoint: Spring JDBC Example mit MySQL

[7] Tutorialspoint: Spring Environment Setup

[8] Spring Framework Homepage: Quick Start

Stichworte: , , , ,

Kategorie: Java, Rezensionen

Schreibe einen Kommentar

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