Hurtig guide til Spring Roo

1. Oversigt

Spring Roo er et Rapid Application Development (RAD) værktøj, der sigter mod at levere hurtige og øjeblikkelige resultater med fokus på Spring webapplikationer og nyere Spring-teknologier. Det giver os mulighed for at generere kedelpladekode og projektstruktur til Spring-applikationer med brugervenlige kommandoer.

Roo kan bruges som et enkeltstående program, der kører fra operativsystemets kommandolinje. Der er ikke noget krav om at bruge Eclipse, Spring Tool Suite (STS) eller nogen anden IDE; faktisk kan vi bruge enhver teksteditor til at skrive kode!

For enkelheds skyld vil vi dog bruge STS IDE med Roo Extension.

2. Installation af Spring Roo

2.1. Krav

For at følge denne vejledning skal disse installeres:

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

2.2. Installation

Når vi først har downloadet og installeret Java JDK og STS, skal vi pakke Spring Roo ud og tilføje det til systemstien.

Lad os oprette ROO_HOME miljøvariabel og tilføj % ROO_HOME% \ bin til stien.

For at kontrollere, at Roo er installeret korrekt, kan vi åbne kommandolinjen og udføre følgende kommandoer:

mkdir baeldung cd baeldung roo quit

Efter et par sekunder vil vi se:

 _ ___ _ __ _ __ (_) _ __ __ _ _ __ ___ ___ / __ | '_ \ | '__ | | '_ \ / _` | | '__ / _ \ / _ \ \ __ \ | _) | | | | | | | (_ | | | | | (_) | (_) | | ___ / .__ / | _ | | _ | _ | _ | \ __, | | _ | \ ___ / \ ___ / | _ | | ___ / 2.0.0.RC1 Velkommen til Spring Roo. For hjælp, tryk TAB eller skriv "tip" og tryk derefter på ENTER.

Roo er installeret, og det fungerer. Bemærk, at Spring Roo-versionen vil variere, og trinene og instruktionerne kan afhænge af den faktiske anvendte version.

Vigtigt: Spring Roo 2.0 er ikke bagudkompatibel med 1.x.

2.3. Tilføjelse og konfiguration af STS-udvidelse

STS understøtter udviklingen af ​​Spring-applikationer og indeholder klar til brug udvidelser. Spring Roo-udvidelse er dog ikke inkluderet. Derfor bliver vi nødt til at tilføje det manuelt.

I STS lad os gå til Installer ny software og importer bogmærker til Tilgængelige softwaresider. I øjeblikket er bogmærker i % ROO_HOME% \ conf folder. Når vi først har importeret bogmærkerne, kan vi søge efter det roo og installer den nyeste version af Spring IDE Roo Support. I sidste ende bliver vi bedt om at genstarte STS.

For detaljerede og opdaterede trin kan vi altid gå og tjekke Spring Roo Kom godt i gang dokumentation.

Når vi har installeret Roo Support i STS, skal vi konfigurere udvidelsen. Det er lige så let som at pege Roo Support på % ROO_HOME% folder. Igen giver Spring Roo Kom godt i gang detaljerede trin, hvordan man gør det.

Nu kan vi gå til "Window" -menuen igen og vælge Vis visning> Roo Shell.

3. Første projekt

3.1. Opsætning af et projekt i STS

I STS lad os åbne Roo Shell vindue og klik på Opret nyt Roo-projekt ikon. Dette åbner en Nyt Roo-projekt vindue.

Vi navngiver projektet roo og brug com.baeldung som vores øverste pakke navn. Vi kan forlade alle andre standardværdier og fortsætte til slutningen for at oprette et nyt projekt ved hjælp af Roo.

I STS kører dette følgende kommando for os:

projektopsætning --topLevelPackage com.baeldung --projectName "roo" - java 8 - emballage JAR

Som allerede nævnt behøver vi ikke en IDE, og vi kunne selv have kørt den kommando fra Roo Shell! For enkelheds skyld bruger vi indbyggede funktioner i STS.

Hvis vi får følgende fejl:

Kunne ikke beregne byggeplan: Plugin org.codehaus.mojo: aspectj-maven-plugin: 1.8 eller en af ​​dens afhængigheder kunne ikke løses: Kunne ikke læse artefaktbeskrivelsen til org.codehaus.mojo: aspectj-maven-plugin: jar: 1.8

den nemmeste måde at rette det på er at redigere manuelt pom.xml fil og opdatering aspectj.plugin.version fra 1.8 til 1.9:

1.9

På dette stadium burde der ikke være nogen fejl i projektet, og der vil være et par automatisk genererede filer til os.

3.2. Roo Shell

Nu er det tid til at gøre sig bekendt med Roo Shell. Spring Roos primære brugergrænseflade er faktisk kommandoprompt!

Lad os derfor gå tilbage til Roo Shell-vinduet. Lad os køre den første kommando ved at skrive 'h' og trykke på CTRL + MELLEMRUM:

roo> h hjælp tip

Roo vil automatisk foreslå og autofuldføre kommandoer for os. Vi kan skrive 'hej', trykke på CTRL + MELLEMRUM, og Roo foreslår automatisk antydning kommando.

Et andet godt træk ved Roo Shell er kontekst bevidsthed. For eksempel output af antydning kommandoen ændres afhængigt af den forrige input.

Lad os nu udføre antydning kommando og se hvad der sker:

roo> tip Roo kræver installation af en vedvarende konfiguration. Skriv 'jpa setup' og tryk derefter på CTRL + MELLEMRUM. Vi foreslår, at du skriver 'H' og derefter CTRL + MELLEMRUM for at fuldføre "HIBERNATE". Efter --provideren skal du trykke på CTRL + MELLEMRUM for valg af database. Til testformål skriv (eller CTRL + MELLEMRUM) HYPERSONIC_IN_MEMORY. Hvis du trykker på CTRL + MELLEMRUM igen, ser du, at der ikke er flere muligheder. Som sådan er du klar til at trykke på ENTER for at udføre kommandoen. Når JPA er installeret, skal du skrive 'tip' og ENTER for det næste forslag.

Det giver os de næste trin, vi skal udføre. Lad os tilføje en database nu:

roo> jpa opsætning - udbyder HIBERNATE --database HYPERSONIC_IN_MEMORY Oprettet SRC_MAIN_RESOURCES \ application.properties Opdateret SRC_MAIN_RESOURCES \ application.properties Opdateret SRC_MAIN_RESOURCES \ application-dev.properties Opdateret ROOT \ pom.xml [tilføjet afhængighed. -starter-data-jpa :, org.springframework.boot: spring-boot-starter-jdbc :, org.hsqldb: hsqldb :; tilføjet egenskab 'springlets.version' = '1.2.0.RC1'; tilføjede afhængigheder io.springlets: springlets-data-jpa: $ {springlets.version}, io.springlets: springlets-data-jpa: $ {springlets.version}; tilføjede afhængigheder io.springlets: springlets-data-commons: $ {springlets.version}, io.springlets: springlets-data-commons: $ {springlets.version}]

På dette tidspunkt bliver vi nødt til at udføre nogle kommandoer. Mellem hver af dem kan vi altid løbe antydning kommando for at se, hvad der foreslås af Roo. Dette er en meget nyttig funktion.

Lad os køre kommandoerne først, og vi vil gennemgå dem bagefter:

roo> enhed jpa --klasse ~ .domæne.Bogfeltstreng - feltnavn titel --notNull feltstreng --fieldName forfatter --notNull feltstreng --fieldName isbn --notNull repository jpa --entity ~ .domain.Book service - alle web-mvc-opsætninger web-mvc-visningskonfigurationer --type THYMELEAF web-mvc-controller --entity ~ .domæne.Bog --responsType THYMELEAF

Vi er nu klar til at køre vores ansøgning. Lad os dog gå tilbage gennem kommandoerne for at se, hvad vi har gjort.

Først oprettede vi en ny JPA-vedvarende enhed i src / main / java folder. Dernæst oprettede vi tre Snor felter i Bestil klasse, gav dem et navn og indstillet til ikke at være nul.

Derefter har vi genereret Spring Data-arkiv til den angivne enhed og oprettet en ny servicegrænseflade.

I sidste ende inkluderede vi Spring MVC-konfiguration, installerede Thymeleaf og oprettede en ny controller, der administrerer vores enhed. Fordi vi har bestået Thymeleaf som svarstype, vil de genererede metoder og synspunkter afspejle dette.

3.3. Kørsel af applikationen

Lad os opdatere projektet og højreklikke på roo projekt og vælg Kør som> Spring Boot App.

Når applikationen er startet, kan vi åbne en webbrowser og gå til // localhost: 8080. Derefter ser vi til Roo-ikonet Bestil menu og nedenunder to muligheder: Opret bog og Liste over bøger. Vi kan bruge dette til at tilføje en bog til vores applikation og se listen over tilføjede bøger.

3.4. Andre funktioner

Når vi åbner Bog.java klassefil, bemærker vi, at klassen er kommenteret med @Roo kommentarer. Disse blev tilføjet af Roo Shell og bruges til at kontrollere og tilpasse indholdet af AspectJ inter-type declaration (ITD) filer. Vi kan se filerne i Package Explorer i STS ved at fjerne markeringen af ​​"Skjul genererede Spring Roo ITDs" -filter i visningsmenuen, eller vi kan åbne filerne direkte fra filsystemet.

Roo-kommentarer har KILDE fastholdelsespolitik. Det betyder kommentarerne vil ikke være til stede i kompileret klasse-bytecode, og der vil ikke være nogen afhængighed af Roo i implementerede applikationer.

En anden, åbenlyst manglende del i Bog.java klasse er getters og settere. Disse er gemt i separate AspectJ ITDs-filer, som allerede nævnt. Roo vil aktivt vedligeholde denne kedelpladekode for os. Derfor vil ændringer i felter i en hvilken som helst klasse automatisk blive reflekteret i AspectJ ITD'er, da Roo "overvåger" alle ændringer - enten udført via Roo Shell eller direkte af en udvikler i IDE.

Roo tager sig af den gentagne kode som toString () eller lige med() metoder også.

Desuden kan rammen let fjernes fra projektet, undgåelse af leverandørlåsning ved at fjerne annoteringer og skubbe AspectJ ITD til standard java-kode.

4. Konklusion

I dette hurtige eksempel lykkedes det os at installere og konfigurere Spring Roo i STS og oprettede et lille projekt.

Vi brugte Roo Shell til at konfigurere det og behøvede ikke at skrive en enkelt linje med faktisk Java-kode! Og vi var i stand til at få en fungerende applikationsprototype på få minutter, og Roo tog sig af al kedelpladekode for os.

Som altid kan koden, der bruges i hele diskussionen, findes på GitHub.