Beknopte handleiding voor Spring Roo

1. Overzicht

Spring Roo is een Rapid Application Development (RAD) -tool die tot doel heeft snelle en onmiddellijke resultaten te leveren, gericht op Spring-webapplicaties en nieuwere Spring-technologieën. Het stelt ons in staat om standaardcode en projectstructuur voor Spring-toepassingen te genereren met eenvoudig te gebruiken commando's.

Roo kan worden gebruikt als een zelfstandige applicatie die wordt uitgevoerd vanaf de opdrachtregel van het besturingssysteem. Er is geen vereiste om Eclipse, Spring Tool Suite (STS) of een andere IDE te gebruiken; in feite kunnen we elke teksteditor gebruiken om code te schrijven!

Voor de eenvoud zullen we STS IDE echter gebruiken met de Roo-extensie.

2. Spring Roo installeren

2.1. Vereisten

Om deze tutorial te volgen, moeten deze worden geïnstalleerd:

  1. Java JDK 8
  2. STS
  3. Spring Roo

2.2. Installatie

Zodra we Java JDK en STS hebben gedownload en geïnstalleerd, moeten we Spring Roo uitpakken en aan het systeempad toevoegen.

Laten we het ROO_HOME omgevingsvariabele en add % ROO_HOME% \ bin naar het pad.

Om te controleren of Roo correct is geïnstalleerd, kunnen we de opdrachtregel openen en de volgende opdrachten uitvoeren:

mkdir baeldung cd baeldung roo stoppen

Na een paar seconden zullen we zien:

 _ ___ _ __ _ __ (_) _ __ __ _ _ __ ___ ___ / __ | '_ \ | '__ | | '_ \ / _` | | '__ / _ \ / _ \ \ __ \ | _) | | | | | | | (_ | | | | | (_) | (_) | | ___ / .__ / | _ | | _ | _ | | _ | \ __, | | _ | \ ___ / \ ___ / | _ | | ___ / 2.0.0.RC1 Welkom bij Spring Roo Voor assistentie druk op TAB of typ "hint" en druk op ENTER.

Roo is geïnstalleerd en het werkt. Houd er rekening mee dat de Spring Roo-versie kan variëren en dat de stappen en instructies kunnen afhangen van de daadwerkelijk gebruikte versie.

Belangrijk: Spring Roo 2.0 is niet achterwaarts compatibel met 1.x.

2.3. STS-extensie toevoegen en configureren

STS ondersteunt out-of-the-box de ontwikkeling van Spring-applicaties en omvat kant-en-klare uitbreidingen. De Spring Roo-extensie is echter niet inbegrepen. Daarom zullen we het handmatig moeten toevoegen.

Laten we in STS naar Installeer nieuwe software en bladwijzers importeren naar Beschikbare softwaresites. Momenteel staan ​​bladwijzers in de % ROO_HOME% \ conf map. Nadat we de bladwijzers hebben geïmporteerd, kunnen we eenvoudig zoeken naar roo en installeer de nieuwste versie van Spring IDE Roo-ondersteuning. Uiteindelijk zullen we worden gevraagd om STS opnieuw te starten.

Voor gedetailleerde en up-to-date stappen kunnen we altijd de Spring Roo Aan de slag-documentatie raadplegen.

Zodra we Roo Support in STS hebben geïnstalleerd, moeten we de extensie instellen. Het is net zo eenvoudig als Roo Support erop wijzen % ROO_HOME% map. Nogmaals, Spring Roo Aan de slag geeft gedetailleerde stappen om dit te doen.

Nu kunnen we weer naar het applicatiemenu "Venster" gaan en selecteren Toon weergave> Roo Shell.

3. Eerste project

3.1. Een project opzetten in STS

Laten we in STS het Roo Shell venster en klik op Maak een nieuw Roo-project icoon. Dit opent een Nieuw Roo-project venster.

We noemen het project roo en gebruiken com.baeldung als onze pakketnaam op het hoogste niveau. We kunnen alle andere standaardwaarden laten staan ​​en doorgaan tot het einde om een ​​nieuw project te maken met Roo.

In STS zal dit het volgende commando voor ons uitvoeren:

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

Zoals eerder vermeld, hebben we geen IDE nodig, en we hadden dat commando zelf vanuit Roo Shell kunnen uitvoeren! Voor de eenvoud gebruiken we ingebouwde functies van STS.

Als we de volgende foutmelding krijgen:

Kon bouwplan niet berekenen: Plugin org.codehaus.mojo: aspectj-maven-plugin: 1.8 of een van de afhankelijkheden ervan kon niet worden opgelost: Lezen van artefactdescriptor voor org.codehaus.mojo: aspectj-maven-plugin: jar: mislukt: 1.8

de eenvoudigste manier om het probleem op te lossen, is door handmatig te bewerken pom.xml bestand en update aspectj.plugin.version van 1.8 naar 1.9:

1.9

In dit stadium zouden er geen fouten in het project moeten zijn en zullen er enkele automatisch gegenereerde bestanden voor ons zijn.

3.2. Roo Shell

Nu is het tijd om vertrouwd te raken met de Roo Shell. De primaire gebruikersinterface van Spring Roo is in feite de opdrachtprompt!

Laten we daarom teruggaan naar het Roo Shell-venster. Hierin voeren we de eerste opdracht uit door 'h' te typen en op CTRL + SPACE te drukken:

roo> h help hint

Roo zal automatisch opdrachten voor ons voorstellen en automatisch aanvullen. We kunnen ‘hallo 'typen, op CTRL + SPATIE drukken en Roo zal automatisch voorstellen hint opdracht.

Een andere geweldige functie van Roo Shell is de contextbewustzijn. De output van de hint commando zal veranderen afhankelijk van de vorige invoer.

Laten we nu het hint commando en kijk wat er gebeurt:

roo> hint Roo vereist de installatie van een persistentieconfiguratie. Typ 'jpa setup' en druk op CTRL + SPACE. We raden u aan 'H' in te typen en vervolgens CTRL + SPACE om "HIBERNATE" te voltooien. Druk na de --provider op CTRL + SPACE voor databasekeuzes. Typ (of CTRL + SPACE) HYPERSONIC_IN_MEMORY voor testdoeleinden. Als je nogmaals op CTRL + SPACE drukt, zie je dat er geen opties meer zijn. Als zodanig bent u klaar om op ENTER te drukken om de opdracht uit te voeren. Zodra JPA is geïnstalleerd, typt u 'hint' en ENTER voor de volgende suggestie.

Het geeft ons de volgende stappen die we moeten uitvoeren. Laten we nu een database toevoegen:

roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY Gemaakt SRC_MAIN_RESOURCES \ application.properties Bijgewerkt SRC_MAIN_RESOURCES \ application.properties Bijgewerkt SRC_MAIN_RESOURCES \ application-dev.properties-booty org. -starter-data-jpa :, org.springframework.boot: spring-boot-starter-jdbc :, org.hsqldb: hsqldb :; toegevoegde eigenschap 'springlets.version' = '1.2.0.RC1'; afhankelijkheden toegevoegd io.springlets: springlets-data-jpa: $ {springlets.version}, io.springlets: springlets-data-jpa: $ {springlets.version}; afhankelijkheden toegevoegd io.springlets: springlets-data-commons: $ {springlets.version}, io.springlets: springlets-data-commons: $ {springlets.version}]

In dit stadium zullen we enkele opdrachten moeten uitvoeren. Tussen elk van hen kunnen we altijd rennen hint commando om te zien wat wordt voorgesteld door Roo. Dit is een erg handige functie.

Laten we eerst de commando's uitvoeren, en we zullen ze daarna doornemen:

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

We zijn nu klaar om onze applicatie uit te voeren. Laten we echter een stap terug doen bij de opdrachten om te zien wat we hebben gedaan.

Ten eerste hebben we een nieuwe permanente JPA-entiteit gemaakt in het src / main / java map. Vervolgens hebben we er drie gemaakt Draad velden in Boek klas, gaf ze een naam en was ingesteld om niet te zijn nul.

Daarna hebben we Spring Data-repository gegenereerd voor de opgegeven entiteit en een nieuwe service-interface gemaakt.

Uiteindelijk hebben we de Spring MVC-configuratie toegevoegd, Thymeleaf geïnstalleerd en een nieuwe controller gemaakt die onze entiteit beheert. Omdat we Thymeleaf als antwoordtype hebben doorgegeven, zullen de gegenereerde methoden en weergaven dit weerspiegelen.

3.3. De applicatie uitvoeren

Laten we het project vernieuwen en er met de rechtermuisknop op klikken roo project en selecteer Uitvoeren als> Spring Boot-app.

Zodra de applicatie is gestart, kunnen we een webbrowser openen en naar // localhost: 8080 gaan. Naast het Roo-pictogram zullen we zien Boek menu en daaronder twee opties: Maak een boek en Lijst met boeken. We kunnen dit gebruiken om een ​​boek aan onze applicatie toe te voegen en de lijst met toegevoegde boeken te bekijken.

3.4. Andere mogelijkheden

Als we openen Boek.java class-bestand, zullen we zien dat de klasse is geannoteerd met @Roo annotaties. Deze zijn toegevoegd door Roo Shell en worden gebruikt om de inhoud van AspectJ inter-type declaratie (ITD) -bestanden te beheren en aan te passen. We kunnen de bestanden in Pakketverkenner in STS bekijken door het filter "Gegenereerde Spring Roo ITD's verbergen" in het menu Weergeven te deselecteren, of we kunnen de bestanden rechtstreeks vanuit het bestandssysteem openen.

Roo-annotaties hebben BRON bewaarbeleid. Dit betekent de annotaties zullen niet aanwezig zijn in de gecompileerde bytecode van de klasse, en er is geen afhankelijkheid van Roo in geïmplementeerde applicaties.

Een ander, duidelijk ontbrekend onderdeel in de Boek.java klasse zijn getters en setters. Deze worden, zoals reeds vermeld, opgeslagen in afzonderlijke AspectJ ITD-bestanden. Roo zal deze standaardcode actief voor ons onderhouden. Daarom zullen wijzigingen in velden in elke klasse automatisch worden weergegeven in AspectJ ITD's, aangezien Roo alle wijzigingen "bewaakt" - ofwel gedaan via Roo Shell of rechtstreeks door een ontwikkelaar in IDE.

Roo zorgt voor de repetitieve code, zoals toString () of is gelijk aan () methoden ook.

Bovendien kan het framework gemakkelijk uit het project worden verwijderd, waardoor vendor lock-in wordt vermeden, door annotaties te verwijderen en AspectJ ITD naar standaard Java-code te pushen.

4. Conclusie

In dit korte voorbeeld zijn we erin geslaagd om Spring Roo in STS te installeren en configureren en hebben we een klein project gemaakt.

We hebben Roo Shell gebruikt om het op te zetten en hoefden geen enkele regel echte Java-code te schrijven! En we waren in staat om binnen een paar minuten een werkend applicatie-prototype te krijgen en Roo zorgde voor alle standaardcode voor ons.

Zoals altijd is de code die tijdens de discussie wordt gebruikt, te vinden op GitHub.