Am ersten Tag der JAX besuchte ich den Powerworkshop zu Spring. Eberhard Wolff ist da wohl einer der bekanntesten Sprecher zu diesem Thema. Bei Spring geht es eigentlich darum, dass einfache Objekte (POJO's) durch Dependency Injection miteinander Verknüpft werden. Diese Verknüpfung kann entweder durch eine XML-Beschreibung oder durch Annotations direkt im Code geschehen. Da man aber versucht, den einzelnen POJO's nichts von einem Spring Framework ansehen zu lassen, finde ich die XML Variante persönlich besser. Der Vorteil von POJO's in Spring gegenüber etwa EJB ist, dass die einzelnen Klassen überhaupt keine Abhängigkeit zum darunter liegenden Framework haben. Sie sind so eher wiederverwendbar aber vor allem auch für sich alleine testbar. Denn die Dependency Injection, die von Spring vorausgesetzt wird und sich in Form eines Konstruktors oder einer setter Methode offenbart, erlaubt es natürlich ganz einfach, in die Klasse zu Testzwecken auch Mockobjete zu inizieren.
Spriong besitzt zudem viele Templates, die es erlauben, auf andere API's ganz einfach zuzugreifen. Beispielsweise wird für einen Datenbankzugriff via JDBC die ganze Exceptionbehandlung und das schliessen der Connections vom Framework übernommen. Es spielt übrigens auch keine Rolle, ob nun JPA, Hibernate, oder etwas anderes als OD Mapper unter Spring liegen. Für die Anwendung werden diese Funktionalitäten gekappselt und eventuelle Exception werden abstrahiert.
Besonders interessant finde ich auch die Verwendung von Transaktionen. So kann mit @Transactional eine Methode bezeichnet werden, die dann ähnlich zu synchronize, diesen Block mit einer Transaktion versieht und nötigenfalls einen Rollback macht.
AOP wird in Spring auch gross geschrieben. Es geht je darum, dass gleicher Code an vielen Stellen verwendet wird und so als Aspekte zusammengefasst werden soll. Dies ist etwa beim Logging, bei Security oder bei Transaktionen der Fall. Spring AOP ist dabei einiges einfacher anzuwenden als AspectJ.
Spring hat sich ja von einem Framework zu einem richtigen Oekosystem gemausert. So gibt es zahlreiche Unterprojekte, die es den Entwicklern einfach machen, coole Features in ihren Code einzubauen. Oberstes Kredo bleibt dabei immer die Einfachheit.
Montag, 21. April 2008
Abonnieren
Kommentare zum Post (Atom)

0 Kommentare:
Kommentar veröffentlichen