Artikel

 
Oktober 2009 | Artikel

Einstieg in Spring Roo RC2

(Link zum Artikel: http://www.it-republik.de/jaxenter/artikel/2599)

Codegenerierung "the Spring way"

Text: Mike Wiesner
In Zeiten von Grails, Scala & Co. ist es modern geworden zu zeigen, dass komplette Anwendungen innerhalb von wenigen Minuten erstellt werden können. Am Ende kommen dann Sätze wie "und jetzt müsste man nur noch ein paar Kleinigkeiten machen, bevor man in Produktion gehen kann". Diese letzten 20% brauchen dann aber 80% der Zeit. Für den etablierten Java-Entwickler kommt das Problem dazu, dass er meist eine Fülle neuer Technologien lernen muss, denn sonst braucht man am Ende noch viel mehr als die erwähnten 80%. Spring Roo hat das Ziel, einige der Vorteile von z.B. Grails mittels bewährter Technologien wie "normalem" Java, AspectJ, Spring und JPA dem Entwickler zur Verfügung zu stellen.
Teil 1   Teil 2   Teil 3   Teil 4   

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 /bin/roo.sh /usr/bin/roo" . Um die von Spring Roo erstellten Projekte später auch bauen zu können, muss Maven ab der Version 2.0.9 installiert sein. Für die Bearbeitung des Codes werden wir später die frei verfügbare SpringSource Tool Suite (STS) verwenden. Dabei handelt es sich um eine Eclipse-Distribution, welche schon die wichtigsten Plug-ins für die Entwicklung mit Roo, Spring und AspectJ enthält. Da der Download etwas dauern kann, am besten auch gleich herunterladen und das Installationsprogramm ausführen.

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:

  1. mkdir hra
  2. cd hra
  3. roo

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:

  1. 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:

  1. 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.

Teil 1   Teil 2   Teil 3   Teil 4   

Anzeige

Kommentare

Gravatar Dierk König 06.10.2009
um 21:29 Uhr
"willommen zu hra" hat gleich zwei Fehler: 1: S 'k' fehlt 2. Grammatik. #zitieren

Anzeige

zurück zum Seitenanfang
X