In diesem Artikel werden wir als Beispiel mit Spring Roo eine Urlaubsantrags-Webanwendung entwickeln, die den Namen HRA ("Holiday Request Application") bekommen wird.
Spring Roo im Java Magazin
Dieser Artikel erscheint auch im kommenden Java Magazin 11.09 (ab Donnerstag am Kiosk). Zum Zeitpunkt der Heftproduktion lag Spring Roo RC1 vor. Durch den neuen RC2 haben sich wichtige Details geändert, so dass Mike Wiesner den Artikel darauf abgestimmt umgeschrieben und aktualisiert hat.
Spring Roo installieren
Bevor man Spring Roo verwenden kann, muss man es natürlich erst mal installieren: Dazu einfach die aktuellen Version (im Artikel wir 1.0.0RC2 verwendet) herunterladen, anschließend das Paket in ein beliebiges Verzeichnis entpacken und das darin enthaltene "bin" Verzeichnis in den Pfad aufnehmen. Bei Windows muss man dazu in die Systemeinstellungen gehen, bei *nix-Systemen reicht in der Regel folgender Befehl, der einen symbolischen Link erzeugt aus: "sudo ln –s
Es ist zwar sehr sinnvoll, jedoch nicht zwingend erforderlich, die STS zu verwenden, um mit Spring Roo zu arbeiten. Man könnte sogar einen normalen Texteditor und Maven zum Kompilieren verwenden. Auch eine normale Eclipse-Installation kann durch installieren der AspectJ Developer Tools (AJDT) (ab Version 1.6.5) und eines Maven-Plugins benutzt werden.
Projekt anlegen
Die erste Aufgabe ist das Anlegen eines neuen Projekts. Dazu müssen wir ein leeres Verzeichnis anlegen und anschließend Spring Roo starten:
mkdir hracd hraroo
Jetzt befinden wir uns in der Roo Shell. Das ist eine interaktive Konsole, die z.B. mit dem Befehl "hint" eine kontextsensitive Hilfe startet und auch eine Vervollständigung durch Drücken der Tabulator-Taste anbietet. Als erstes wollen wir ein neues Projekt erstellen, dazu geben wir in der Roo Shell folgendes Kommando ein:
roo> project --topLevelPackage hra
Nach Ausführen des Kommandos teilt uns Roo mit, was es alles gemacht hat. Es sollten nun eine Reihe von „Created ...“ Zeilen erscheinen. Roo hat das übliche Maven-Layout angelegt und eine pom.xml mit diversen Maven Plug-ins sowie den Dependencies für Spring, AspectJ, Log4J, JUnit und die Roo-Annotations erstellt. Ebenfalls erstellt wurde eine application-context.xml für Spring, die zum jetzigen Zeitpunkt primär die Spring-Konfiguration mittels Annotationen aktiviert. Bis jetzt gab es noch keinen wirklichen Vorteil gegenüber den Maven Archetypes – aber wir sind ja auch erst am Anfang.
JPA hinzufügen
Unser Projekt benötigt natürlich auch eine Persistenzmöglichkeit, und in unserem Fall verwenden wir dazu JPA mit Hibernate und einer HSQLDB. Normalerweise müssten wir jetzt eine persistence.xml erstellen sowie einige Einstellungen in der application-context.xml vornehmen. Mit Roo reicht folgender Befehl:
roo> persistence setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT
Dieser Befehl führt die oben beschriebenen Änderungen am Code aus. Außerdem erzeugt er eine properties-Datei für die Datenbankeinstellungen und fügt Hibernate und JPA in die pom.xml ein. Durch Drücken der Tabulator-Taste nach --provider bzw. --database bekommt man übrigens eine Liste der dort möglichen Werte.
Hier zeigt Roo, dass es deutlich mehr kann als Maven Archetypes: Man kann nicht nur ein Skelett für ein Projekt erzeugen lassen, sondern man wird auch bei der Entwicklung basierend auf dem Skelett unterstützt.














