Kurzanleitung zu Spring Roo

1. Überblick

Spring Roo ist ein Rapid Application Development (RAD) -Tool, das schnelle und sofortige Ergebnisse für Spring-Webanwendungen und neuere Spring-Technologien liefert. Es ermöglicht uns, Boilerplate-Code und Projektstruktur für Spring-Anwendungen mit einfach zu verwendenden Befehlen zu generieren.

Roo kann als eigenständige Anwendung verwendet werden, die über die Befehlszeile des Betriebssystems ausgeführt wird. Es ist nicht erforderlich, Eclipse, Spring Tool Suite (STS) oder eine andere IDE zu verwenden. Wir können jeden Texteditor verwenden, um Code zu schreiben!

Der Einfachheit halber verwenden wir jedoch STS IDE mit der Roo-Erweiterung.

2. Spring Roo installieren

2.1. Bedarf

Um diesem Tutorial folgen zu können, müssen diese installiert sein:

JDK 8]. STS

2.2. Installation

Nachdem wir Java JDK und STS heruntergeladen und installiert haben, müssen Sie Spring Roo entpacken und dem Systempfad hinzufügen.

Erstellen Sie die Umgebungsvariable ROO HOME und fügen Sie dem Pfad % ROO HOME% \ bin hinzu.

Um zu überprüfen, ob Roo korrekt installiert ist, können Sie die Befehlszeile öffnen und folgende Befehle ausführen:

mkdir baeldung
cd baeldung
roo quit

Nach wenigen Sekunden sehen wir:

                __
 ______ __ ____  __ ____(__)__ ____   ____ __   __ ____ ______   ______/____| '__ \| '____| | '__ \/__` | | '____/__ \/__ \
\____ \ |__) | |  | | | | | (__| | | | | (__) | (__) |
|______/.____/|__|  |__|__| |__|\____, | |__|  \______/\______/    |__|                 |______/         2.0.0.RC1

Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.

Roo ist installiert und funktioniert. Bitte beachten Sie, dass die Version von Spring Roo variieren kann und die Schritte und Anweisungen von der verwendeten Version abhängen können.

Wichtig: Spring Roo 2.0 ist nicht abwärtskompatibel mit 1.x.

2.3. Hinzufügen und Konfigurieren der STS-Erweiterung

Standardmäßig unterstützt STS die Entwicklung von Spring-Anwendungen und enthält fertige Erweiterungen. Die Erweiterung von Spring Roo ist jedoch nicht enthalten. Daher müssen wir es manuell hinzufügen.

Gehen Sie in STS zu Install New Software und importieren Sie Lesezeichen in Verfügbare Software-Sites . Derzeit befinden sich Lesezeichen im Ordner % ROO HOME% \ conf . Sobald wir die Lesezeichen importiert haben, können wir einfach nach roo suchen und die neueste Version von Spring IDE Roo Support__ installieren. Am Ende werden wir aufgefordert, STS neu zu starten.

Detaillierte und aktuelle Schritte finden Sie unter Spring Roo Erste Schritte Dokumentation.

Nachdem wir den Roo Support in STS installiert haben, müssen wir die Erweiterung einrichten. Es ist so einfach, den Roo-Support auf den Ordner % ROO HOME% __ zu verweisen.

Http://docs.spring.io/spring-roo/docs/2.0.x/reference/html/#getting-started-requirements[Spring Roo[Erste Schritte]]enthält detaillierte Anweisungen, wie Sie dies tun können.

Jetzt können wir erneut zum Anwendungsfenster „Fenster“ gehen und __Show View> Roo Shell auswählen.

3. Erstes Projekt

3.1. Einrichten eines Projekts in STS

In STS öffnen wir das Fenster Roo Shell und klicken auf das Symbol Erstellen eines neuen Roo-Projekts . Daraufhin wird ein neues Projektfenster geöffnet.

Wir nennen das Projekt roo und verwenden com.baeldung als Paketnamen auf oberster Ebene. Wir können alle anderen Standardwerte belassen und mit Roo ein neues Projekt erstellen.

In STS wird der folgende Befehl für uns ausgeführt:

project setup --topLevelPackage com.baeldung --projectName "roo" --java 8 --packaging JAR

Wie bereits erwähnt, benötigen wir keine IDE, und wir könnten diesen Befehl selbst von Roo Shell ausführen. Zur Vereinfachung verwenden wir integrierte Funktionen von STS.

Wenn wir die folgende Fehlermeldung erhalten:

Could not calculate build plan: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.8
  or one of its dependencies could not be resolved:
  Failed to read artifact descriptor for org.codehaus.mojo:aspectj-maven-plugin:jar:1.8

Der einfachste Weg, dies zu beheben, ist die manuelle Bearbeitung der Datei pom.xml und das Aktualisieren von aspectj.plugin.version von 1.8 auf 1.9__:

<aspectj.plugin.version>1.9</aspectj.plugin.version>

Zu diesem Zeitpunkt sollten keine Fehler im Projekt auftreten, und es werden einige automatisch generierte Dateien für uns vorhanden sein.

3.2. Roo Shell

Nun ist es Zeit, sich mit der Roo Shell vertraut zu machen. Die Hauptbenutzeroberfläche von Spring Roo ist eine Eingabeaufforderung.

Kommen wir deshalb zum Roo Shell-Fenster zurück. Lassen Sie uns den ersten Befehl ausführen, indem Sie "h" eingeben und STRG-LEERTASTE drücken:

roo> h

help    hint

Roo schlägt für uns automatisch Befehle vor und vervollständigt diese automatisch. Wir können "hi" eingeben, STRG + LEERTASTE drücken, und Roo schlägt automatisch den hint -Befehl vor.

Ein weiteres großartiges Feature von Roo Shell ist das Kontextbewusstsein . Beispielsweise ändert sich die Ausgabe des Befehls hint abhängig von der vorherigen Eingabe.

Lassen Sie uns nun den hint -Befehl ausführen und sehen, was passiert:

roo> hint
Roo requires the installation of a persistence configuration.

Type 'jpa setup' and then hit CTRL+SPACE. We suggest you type 'H'
then CTRL+SPACE to complete "HIBERNATE".

After the --provider, press CTRL+SPACE for database choices.
For testing purposes, type (or CTRL+SPACE) HYPERSONIC__IN__MEMORY.
If you press CTRL+SPACE again, you'll see there are no more options.
As such, you're ready to press ENTER to execute the command.

Once JPA is installed, type 'hint' and ENTER for the next suggestion.

Es gibt uns die nächsten Schritte, die wir durchführen müssen. Fügen wir jetzt eine Datenbank hinzu:

roo> jpa setup --provider HIBERNATE --database HYPERSONIC__IN__MEMORY
Created SRC__MAIN__RESOURCES\application.properties
Updated SRC__MAIN__RESOURCES\application.properties
Updated SRC__MAIN__RESOURCES\application-dev.properties
Updated ROOT\pom.xml[added dependencies org.springframework.boot:spring-boot-starter-data-jpa:, org.springframework.boot:spring-boot-starter-jdbc:, org.hsqldb:hsqldb:; added property 'springlets.version' = '1.2.0.RC1'; added dependencies io.springlets:springlets-data-jpa:${springlets.version}, io.springlets:springlets-data-jpa:${springlets.version}; added dependencies io.springlets:springlets-data-commons:${springlets.version}, io.springlets:springlets-data-commons:${springlets.version}]----

Zu diesem Zeitpunkt müssen wir einige Befehle ausführen. Zwischen jedem von ihnen können wir immer den __hint__-Befehl ausführen, um zu sehen, was von Roo vorgeschlagen wird.

Dies ist eine sehr nützliche Funktion.

**  Lass uns zuerst die Befehle ausführen ** , und wir werden sie danach durchgehen:

[source,shell,gutter:,true]

roo> entity jpa --class ~.domain.Book field string --fieldName title --notNull field string --fieldName author --notNull field string --fieldName isbn --notNull repository jpa --entity ~.domain.Book service --all web mvc setup web mvc view setup --type THYMELEAF web mvc controller --entity ~.domain.Book --responseType THYMELEAF

Wir sind jetzt bereit, unsere Anwendung auszuführen. Lassen Sie uns jedoch die Befehle zurückgehen, um zu sehen, was wir getan haben.

Zunächst haben wir im Ordner __src/main/java__ eine neue dauerhafte JPA-Entität erstellt. Als Nächstes haben wir drei __String__-Felder in der __Book__-Klasse erstellt, ihnen einen Namen gegeben und nicht __null__ gesetzt.

Danach haben wir das Spring Data-Repository für die angegebene Entität generiert und eine neue Service-Schnittstelle erstellt.

Am Ende haben wir die Spring MVC-Konfiguration integriert, Thymeleaf installiert und einen neuen Controller erstellt, der unsere Entität verwaltet. Da wir Thymeleaf als Antworttyp übergeben haben, spiegeln die generierten Methoden und Ansichten dies wider.

====  **  3.3. Anwendung ausführen **

Aktualisieren Sie das Projekt und klicken Sie mit der rechten Maustaste auf __roo__Projekt, und wählen Sie __Run als> Spring Boot App__.

Sobald die Anwendung gestartet ist, können wir einen Webbrowser öffnen und zu http://localhost: 8080 wechseln. Als Nächstes zum Roo-Symbol wird das Menü __Book__ und unter zwei Optionen angezeigt: __Create Book__ und __List Books__. Wir können dies verwenden, um unserer Anwendung ein Buch hinzuzufügen und die Liste der hinzugefügten Bücher anzuzeigen.

====  **  3.4. Andere Eigenschaften**

Wenn wir die __Book.java__-Klassendatei öffnen, werden wir feststellen, dass die Klasse mit __ @ Roo__-Annotationen versehen wird. Diese wurden von Roo Shell hinzugefügt und werden verwendet, um den Inhalt von AspectJ-Datentypdeklarationsdateien (ITD-Dateien) zu steuern und anzupassen. Wir können die Dateien im Paket-Explorer in STS anzeigen, indem Sie den Filter "Ausgeblendete Spring Roo ITDs ausblenden" im Menü "Ansicht" deaktivieren oder die Dateien direkt vom Dateisystem aus öffnen.

Roo-Anmerkungen haben die Aufbewahrungsrichtlinie __SOURCE__. Dies bedeutet, dass **  die Anmerkungen nicht im kompilierten Klassen-Bytecode **  vorhanden sind und in bereitgestellten Anwendungen keine Abhängigkeit von Roo besteht.

Ein anderer, offensichtlich fehlender Teil in der Klasse __Book.java__ sind __getters__ und __setters__. Diese werden, wie bereits erwähnt, in separaten AspectJ-ITDs-Dateien gespeichert. Roo wird diesen Boilerplate-Code für uns aktiv pflegen. Daher werden Änderungen an Feldern in einer Klasse automatisch in AspectJ ITDs übernommen, da Roo alle Änderungen "überwacht" - entweder über Roo Shell oder direkt von einem Entwickler in IDE.

Roo kümmert sich auch um den sich wiederholenden Code wie die Methoden __toString () __ oder __equals () __.

Darüber hinaus kann das Framework leicht aus dem Projekt entfernt werden, um das Einbinden von Anbietern zu vermeiden, indem Anmerkungen entfernt und AspectJ ITD in den Java-Standardcode verschoben werden.

===  **  4. Fazit**

In diesem kurzen Beispiel haben wir Spring Roo in STS installiert und konfiguriert und ein kleines Projekt erstellt.

Wir haben Roo Shell verwendet, um es einzurichten und mussten keine Zeile mit tatsächlichem Java-Code schreiben! Und wir konnten in wenigen Minuten einen funktionsfähigen Prototyp für Anwendungen erstellen, und Roo kümmerte sich um den gesamten Boilerplate-Code für uns.

Wie immer ist der in der Diskussion verwendete Code auf GitHub unter https://github.com/eugenp/tutorials/tree/master/spring-roo[over zu finden.