Java/Spring Development wurde immer als klobiger Vertreter angesehen und kann nicht schnell Projektprototypen und Skelette generieren. Daher startete Spring das Spring Roo -Projekt, um uns schnell Projektprototypen zu generieren. Dieser Artikel basiert auf den offiziellen Dokumenten von Spring Roo. Wenn Sie mit Englisch vertraut sind, können Sie die ursprünglichen Dokumente direkt lesen, die reichlichere Inhalte haben.
Installieren
Befehlszeilenwerkzeuge installieren
Spring Roo ist eine Reihe von Befehlszeilenwerkzeugen. Wenn Sie Eclipse/STS verwenden, können Sie auch das Plug-In verwenden, das der Eclipse entspricht.
Laden Sie zunächst das Befehlszeilen -Tool herunter. Gehen Sie zur Download -Seite und wählen Sie die entsprechende Version zum Herunterladen aus. Hier habe ich den neuesten 2.0.0.RC1 ausgewählt, schließlich habe ich OCD aktualisiert. Entpacken Sie nach dem Herunterladen und Sie erhalten einen Ordner, in dem sich die ausführbare Datei von Spring Roo im Bin -Verzeichnis befindet. Sie können sehen, dass es zwei Formate hat: BAT und SH, die auf verschiedenen Systemen ausgeführt werden können. Um den zukünftigen Betrieb in Terminalfenstern zu erleichtern, empfehle ich, diesen Ordner gleichzeitig zu Umgebungsvariablen hinzuzufügen.
Öffnen Sie nach der Installation eine Eingabeaufforderung oder ein anderes Terminalfenster, geben Sie den Befehl roo ein und Sie können Roo starten. Erwähnenswert ist, dass Roo Projekte im Ordnerort erstellt, der der Eingabeaufforderung entspricht. Wenn Sie also Projekte an einem bestimmten Speicherort erstellen müssen, wechseln Sie zuerst in die Eingabeaufforderung in die Eingabeaufforderung und starten Sie dann Roo.
Installieren Sie das Eclipse -Plugin
Öffnen Sie Ihre Sonnenfinsternis/STS und befolgen Sie die folgenden Schritte:
Klicken Sie auf Hilfe ▸ Neue Software installieren
Klicken Sie auf verfügbare Software -Websites
Klicken Sie auf die Schaltfläche "Importieren", um "$ roo_home/conf/sts-sites-bookmarks.xml" zu finden und zu bestätigen, dass $ roo_home das Verzeichnis ist, in dem Sie Roo installieren. Wählen Sie die entsprechende Version entsprechend Ihren Anforderungen aus und geben Sie Roo in die Filterleiste ein.
Wählen Sie Funktion Spring IDE Roo -Unterstützung
Bestätigen Sie und lassen Sie die Bedingungen die IDE endgültig neu starten
Unten ist ein Bild des offiziellen Dokuments. Wenn Sie Fragen haben, folgen Sie einfach diesem Bild.
Es ist noch nicht fertig. Das Plug-In wurde installiert, es wurde jedoch noch nicht konfiguriert. Tatsächlich ist die Konfiguration auch sehr einfach. Sagen Sie einfach das Plugin, wo Ihr Roo -Tool installiert ist. Klicken Sie auf das Fenster ▸ Einstellungen ▸ Spring ▸ Roo -Unterstützung, öffnen Sie Einstellungen und befolgen Sie dann den offiziellen Dokument -Screenshot, um Ihren Werkzeugpfad festzulegen.
Auf diese Weise ist das Plug-In eingerichtet. Tatsächlich hat dieses Plug-In keine Wirkung. Es wird nur ein Fenster in Eclipse geöffnet, um den Befehl roo auszuführen, der tatsächlich das gleiche entspricht, wie es direkt in der Eingabeaufforderung ausgeführt wird.
Mit Roo
Führen Sie Roo -Skripte aus
Es gibt drei Beispielprojektskripte im Ordner $ roo_home/samples, und das Ausführen mit Roo kann schnell entsprechende Projekte erstellen. Wenn Sie nicht die Geduld haben, können Sie direkt von hier aus beginnen.
Wenn ich beispielsweise das Projekt für klinische Instanz ausführen möchte, kann ich den folgenden Befehl eingeben:
roo> script -file klinik.roo
Warten Sie einen Moment und das Programm wird erstellt.
Schließlich wurde ein Spring -Boot -Programm basierend auf Maven erstellt. So sieht es unter Idee aus. Sie können sehen, dass es im Projekt eine Protokolldatei mit dem Namen Log.roo gibt, in dem der Inhalt der Ausführung dieses Roo -Skripts aufgezeichnet wird. Ich weiß auch nicht, warum das Programm einige Fehler unter der Idee meldet, aber es wird sich nicht auf die Zusammenstellung und den Betrieb auswirken.
Dieses PETCLINIC -Probenprogramm verwendet Frühlingssicherheit, um Seiten zu schützen. Ich habe es überprüft. Unter Spring Boot ist der Standardbenutzername Benutzer, und das Kennwort wird beim Start des Programms zufällig in die Konsole ausgegeben. Der letzte Screenshot ist wie folgt. Sie können dieses Programm selbst ausführen und testen.
Skript Erklärung
Lassen Sie uns das Roo -Skript von Petclinic erklären. Mal sehen, wie Roo funktioniert. Hier ist eine einfache Erklärung. Wenn Sie detaillierte Informationen benötigen, können Sie sich auf den Anhang des offiziellen Dokuments beziehen, in dem verschiedene Befehle, Parameter und Verwendung von Roo vollständig eingeführt werden.
Das erste ist, ein Projekt zu erstellen und den obersten Paketnamen anzugeben, mit dem ein Spring-Boot-Projekt basierend auf Maven erstellt wird.
Projekt -Setup - -Toplevelpackage org.springframework.roo.petclinic
Geben Sie dann den JPA -Speichertyp mithiniberate hier an, und die Datenbank wird im Speicher gespeichert. Natürlich können auch andere Datenbanken verwendet werden, aber andere Parameter wie Benutzername müssen entsprechend hinzugefügt werden.
JPA -Setup -Provider Hibernate -Datenabase hypersonic_in_memory
Dann gibt es mehrere Aufzählungsklassen, die in Entitätsklassen verwendet werden. Hier bezieht sich das ~ auf den zuvor festgelegten Paketnamen der obersten Ebene.
Enumtyp -Class ~ .Domain.Reference.Pettypeenum Konstante --Name dodenum konstant -name catenum konstant -name birdenum type -class ~ .domain.reference.specialtyenum konstant -name kardiologyenum konstant -name dentistryenum konstant -
Dann gibt es mehrere Entitätsklassen im Projekt.
entity jpa --class ~.domain.Pet --sequenceName PET_SEQ --entityFormatExpression "#{name} (#{type})"entity jpa --class ~.domain.Visit --sequenceName VISIT_SEQ --entityFormatMessage visit_formatity jpa --class ~.domain.AbstractPerson --abstract entity jpa --class ~.domain.Vet --extends ~.domain.AbstractPerson --entityFormatExpression "#{lastName} (#{specialty})"entity jpa --class ~.domain.Owner --extends ~.domain.AbstractPerson --entityFormatExpression "#{lastName} (#{city})"Der folgende Titel legt die Eigenschaften und Korrespondenzbeziehungen jeder Entitätsklasse im Detail fest. Da es viele gibt, habe ich nur ein paar typische ausgewählt. Bevor Sie eine Entitätsklasse einrichten, müssen Sie den Befehl Focus verwenden, um die festgelegte Entitätsklasse anzugeben.
FOCUS -CLASS ~ .DOMAIN.PETFIELD BOOLEAN -Fieldname Sendreminders --Notnull -Primitive Field String -Fieldname Name -Notnull - -Sizemin 1Field -Nummer -Fieldname Gewicht --type Java.lang.Lang.Float --Notnull --Min 0field Enumname -Typ -Type.Type ~. -Fieldname -Besuche --Type ~ .domain.visitfocus --class ~ .domain.abstractPersonfield String -Fieldname FirstName - -Sizemin 3 - -Sizemax 30field String -Fieldname Lastname -Notnull - -Sizemax 30field String --Fieldname -City --Notname -NOTNAUL -Sizemax 1 -Fieldname -Adresse -NOTNAUL -Sizemax 1 -Fieldname -Adresse -NOTNAUL -Sizemax 1 -Fieldname -Adresse -NOTNAUL -Sizemax --Field -Fieldname -Adresse -NOTNAUL --SIZEMAX -FIELD -FIELDNAME -NOTNAUL --SIZEMAW -FIELD -FIELDNAME --NOTNAU --notnull - -Sizemax 30field String -Feldname Telefon --Notnullfield String -Feldname Homepage - -Sizemax 30field String -Feldname E -Mail - -Sizemax 30 - -Sizemin 6field Datum -Feldname Geburtstag -Typ Java.util.date -Notnull -NOTNULL -NOTNULL -NOTNULL -
Stellen Sie dann die Projektionsbeziehung zwischen Entitätsklassen fest und legen Sie das JPA -Repository fest.
Entity -Projektion -ClASS ~ .Domain.vetinfo --entity ~ .domain.vet --Fields ID, FirstName, LastName, Specialty --EntityFormatexpression " #{FirstName} #{LastName}" repository jpa --Entity ~ .domain.vet-interface ~. ~ .domain.vetinforePository jpa --all - -package ~ .RepositoryService -alleRichten Sie dann ein DTO (Datenübertragungsobjekt) ein, das den Formularen und anderen Informationen auf der Seite entspricht, und konvertiert sie dann in die entsprechende Entitätsklasse im Hintergrund. Hier können Sie auch den Finder angeben, dh Abfragebedingungen. Für die Regeln für Abfragebedingungen finden Sie den relevanten Inhalt der Frühlingsdaten JPA.
DTO -CLASS ~ .DOMAIN.PETNAMEANDWELTFORMBEANFIELD STRING -Fieldname Namefield -Nummer -Feldname Gewicht --type java.lang.floatfinder add addity ~ .domain.pet -Name findbynamand und formbean ~ .domain.petnamandnegthebeanbean
Setzen Sie dann Spring Web MVC, wobei Thymeleaf als Ansichtsschicht spezifiziert wird und JSON- und Thymeleaf -Ansichten für alle Controller erzeugt.
Web MVC SetupWeb MVC View Setup -Typ ThymeleafWeb MVC -Controller -ALL -responSetype JSONWEB MVC -Controller -All -responSetype thymeleaf
Dann gibt es die Seite für generierte Abfragen und Details. Hier wird eine entsprechende Abfrageseite für alle zuvor festgelegten Abfragebedingungen generiert, und dann wird eine detaillierte Seite für die angegebene Entitätsklasse generiert. Schließlich wird die Seitensprache angegeben, und es scheint, dass nur Englisch und Spanisch unterstützt werden.
// Finderweb MVC Finder -ALL --Sponsetype Thymeleaf // Hinzufügen von Detailsweb -MVC -Details ~ .domain.
Dann habe ich Spring Security verwendet, um das Programm zu schützen. Die erste Zeile besteht darin, die Standardkonfiguration von Spring Security zu verwenden, der Benutzername ist Benutzer und das Kennwort ist eine zufällige Zeichenfolge, die auf der Konsole gedruckt ist. Die zweite Zeile konfiguriert Benutzerberechtigungen, und nur Benutzer in der Administratorrolle können den Löschvorgang durchführen.
Sicherheits -Setup -Provider defaultSecurity autorize --class ~ .service.impl.ownerserviceImpl --Method Delete.
Anschließend ist die Prüfungsfunktion aktiviert, und das Programm zeichnet automatisch die Bearbeitungszeit und den Editor der entsprechenden Entitätsklasse auf.
JPA Audit Setupjpa Audit add --entity ~ .domain.petjpa audit add --entity ~ .domain.ownerjpa audit add --entity ~ .domain.visitjpa prüfung add --entity ~ .domain.vet
Die Web -Service -Endpunktfunktion ist dann aktiviert, die unter /diensten angezeigt werden kann.
WS Endpoint -Service ~ .Service.api.Ownerservice --Sei ~ .ws.api.Ownerwebservice -Class ~ .ws.endpoint.OWNERWebServiceDpoint --Config ~ .config.wsendpointsconfigurationws Endpoint --Service. ~ .ws.endpoint.petwebserviceendpoint - -config ~ .config.wsendpointsConfiguration
Schließlich werden Unit -Tests und Integrationstests für diese Entitätsklassen und -Dienste automatisch generiert.
// Generating unitary tests for all entitytest unit --class ~.domain.Ownertest unit --class ~.domain.Pettest unit --class ~.domain.Vettest unit --class ~.domain.Visit// Repository integration teststtest integration --class ~.repository.VetRepositorytest integration --class ~.repository.OwnerRepositorytest integration --class . ~ .Web.vissitemThyMeleafController
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über die Installation und Verwendung von Spring Roo, und ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!