Rask guide til Spring Roo

1. Oversikt

Spring Roo er et Rapid Application Development (RAD) -verktøy som tar sikte på å levere raske, øyeblikkelige resultater med fokus på Spring-webapplikasjoner og nyere Spring-teknologier. Det tillater oss å generere kjeleplatekode og prosjektstruktur for vårapplikasjoner med enkle å bruke kommandoer.

Roo kan brukes som et frittstående program som kjører fra operativsystemets kommandolinje. Det er ikke noe krav å bruke Eclipse, Spring Tool Suite (STS) eller annen IDE; faktisk kan vi bruke hvilken som helst teksteditor til å skrive kode!

For enkelhets skyld vil vi imidlertid bruke STS IDE med Roo Extension.

2. Installere Spring Roo

2.1. Krav

For å følge denne veiledningen, må disse installeres:

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

2.2. Installasjon

Når vi har lastet ned og installert Java JDK og STS, må vi pakke ut Spring Roo og legge den til systemstien.

La oss lage ROO_HOME miljøvariabel og legg til % ROO_HOME% \ bin til stien.

For å bekrefte at Roo er riktig installert, kan vi åpne kommandolinjen og utføre følgende kommandoer:

mkdir baeldung cd baeldung roo slutte

Etter noen sekunder vil vi se:

 _ ___ _ __ _ __ (_) _ __ __ _ _ __ ___ ___ / __ | '_ \ | '__ | | '_ \ / _` | | '__ / _ \ / _ \ \ __ \ | _) | | | | | | | (_ | | | | | (_) | (_) | | ___ / .__ / | _ | | _ | _ | _ | \ __, | | _ | \ ___ / \ ___ / | _ | | ___ / 2.0.0.RC1 Velkommen til Spring Roo. For hjelp, trykk TAB eller skriv "hint" og trykk deretter ENTER.

Roo er installert, og det fungerer. Vær oppmerksom på at Spring Roo-versjonen vil variere, og trinnene og instruksjonene kan avhenge av den faktiske versjonen som brukes.

Viktig: Spring Roo 2.0 er ikke bakoverkompatibel med 1.x.

2.3. Legge til og konfigurere STS-utvidelse

STS støtter en utvikling av Spring-applikasjoner og er klar til bruk. Spring Roo-utvidelse er imidlertid ikke inkludert. Derfor må vi legge den til manuelt.

I STS la oss gå til Installer ny programvare og importer bokmerker til Tilgjengelige programvaresider. For øyeblikket er bokmerker i % ROO_HOME% \ conf mappe. Når vi har importert bokmerkene, kan vi enkelt søke etter roo og installer den nyeste versjonen av Vår IDE Roo Support. Til slutt blir vi bedt om å starte STS på nytt.

For detaljerte og oppdaterte trinn kan vi alltid gå og sjekke Spring Roo Komme i gang-dokumentasjonen.

Når vi har installert Roo Support i STS, må vi sette opp utvidelsen. Det er like enkelt som å peke Roo Support på % ROO_HOME% mappe. Igjen gir Spring Roo Getting Started detaljerte trinn for hvordan du gjør det.

Nå kan vi gå til applikasjonsmenyen "Window" en gang til og velge Vis visning> Roo Shell.

3. Første prosjekt

3.1. Sette opp et prosjekt i STS

I STS la oss åpne Roo Shell vindu og klikk på Lag nytt Roo-prosjekt ikon. Dette åpner en Nytt Roo-prosjekt vindu.

Vi vil gi prosjektet navn roo og bruk com.baeldung som pakkenavn på toppnivå. Vi kan legge igjen alle andre standardverdier og fortsette til slutten for å lage et nytt prosjekt ved hjelp av Roo.

I STS vil dette kjøre følgende kommando for oss:

prosjektoppsett --topLevelPackage com.baeldung --projectName "roo" - java 8 - emballasje JAR

Som allerede nevnt trenger vi ikke en IDE, og vi kunne ha kjørt den kommandoen fra Roo Shell selv! For enkelhets skyld bruker vi innebygde funksjoner i STS.

Hvis vi får følgende feil:

Kunne ikke beregne byggeplan: Plugin org.codehaus.mojo: aspectj-maven-plugin: 1.8 eller en av dens avhengigheter kunne ikke løses: Kunne ikke lese artefaktbeskrivelsen for org.codehaus.mojo: aspectj-maven-plugin: jar: 1.8

den enkleste måten å fikse det på er å redigere manuelt pom.xml fil og oppdatering aspectj.plugin.version fra 1.8 til 1.9:

1.9

På dette stadiet burde det ikke være noen feil i prosjektet, og det vil være noen få automatisk genererte filer for oss.

3.2. Roo Shell

Nå er det på tide å bli kjent med Roo Shell. Spring Roos primære brukergrensesnitt er faktisk ledetekst!

La oss derfor gå tilbake til Roo Shell-vinduet. I den, la oss kjøre den første kommandoen ved å skrive ‘h’ og trykke CTRL + MELLOMROM:

roo> h hjelpetips

Roo vil automatisk foreslå og autofullføre kommandoer for oss. Vi kan skrive ‘hei’, trykke CTRL + MELLOMROM, og Roo vil automatisk foreslå hint kommando.

En annen flott funksjon av Roo Shell er kontekst bevissthet. For eksempel er utdataene fra hint kommandoen vil endres avhengig av forrige inngang.

La oss nå utføre hint kommandoen og se hva som skjer:

roo> hint Roo krever installasjon av en utholdenhetskonfigurasjon. Skriv 'jpa setup' og trykk deretter CTRL + MELLOMROM. Vi foreslår at du skriver 'H' og deretter CTRL + SPACE for å fullføre "HIBERNATE". Etter --leverandøren, trykk CTRL + MELLOMROM for databasevalg. For testformål skriv (eller CTRL + MELLOMROM) HYPERSONIC_IN_MEMORY. Hvis du trykker CTRL + MELLOMROM igjen, ser du at det ikke er flere alternativer. Som sådan er du klar til å trykke ENTER for å utføre kommandoen. Når JPA er installert, skriver du 'hint' og ENTER for neste forslag.

Det gir oss de neste trinnene vi trenger å utføre. La oss legge til en database nå:

roo> jpa oppsett - leverandør HIBERNATE --database HYPERSONIC_IN_MEMORY Opprettet SRC_MAIN_RESOURCES \ application.properties Oppdatert SRC_MAIN_RESOURCES \ application.properties Oppdatert SRC_MAIN_RESOURCES \ application-dev.properties Oppdatert ROOT \ pom.xml [lagt til avhengighet. -starter-data-jpa :, org.springframework.boot: spring-boot-starter-jdbc :, org.hsqldb: hsqldb :; lagt til eiendom 'springlets.version' = '1.2.0.RC1'; lagt til avhengigheter io.springlets: springlets-data-jpa: $ {springlets.version}, io.springlets: springlets-data-jpa: $ {springlets.version}; lagt til avhengigheter io.springlets: springlets-data-commons: $ {springlets.version}, io.springlets: springlets-data-commons: $ {springlets.version}]

På dette stadiet må vi utføre noen kommandoer. Mellom hver av dem kan vi alltid løpe hint kommando for å se hva som er foreslått av Roo. Dette er en veldig nyttig funksjon.

La oss kjøre kommandoene først, og vi vil gå gjennom dem etterpå:

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

Vi er nå klare til å kjøre søknaden vår. La oss imidlertid gå tilbake gjennom kommandoene for å se hva vi har gjort.

Først opprettet vi en ny JPA vedvarende enhet i src / main / java mappe. Deretter opprettet vi tre String felt i Bok klasse, ga dem et navn og satt til å ikke være null.

Etter det har vi generert Spring Data repository for den angitte enheten og opprettet et nytt tjenestegrensesnitt.

Til slutt inkluderte vi Spring MVC-konfigurasjon, installerte Thymeleaf og opprettet en ny kontroller som administrerer enheten vår. Fordi vi har passert Thymeleaf som responstype, vil de genererte metodene og visningene gjenspeile dette.

3.3. Kjører applikasjonen

La oss oppdatere prosjektet og høyreklikke på roo prosjekt og velg Kjør som> Spring Boot App.

Når applikasjonen har startet, kan vi åpne en nettleser og gå til // localhost: 8080. Deretter, til Roo-ikonet, vil vi se Bok meny og under to alternativer: Lag bok og Listebøker. Vi kan bruke dette til å legge til en bok i applikasjonen vår og vise listen over bøker som er lagt til.

3.4. Andre funksjoner

Når vi åpner Bok.java klasse-fil, vil vi legge merke til at klassen er merket med @Roo kommentarer. Disse ble lagt til av Roo Shell og brukes til å kontrollere og tilpasse innholdet i AspectJ inter-type declaration (ITD) filer. Vi kan se filene i Package Explorer i STS ved å fjerne merket for "Skjul genererte Spring Roo ITDs" -filter i visningsmenyen, eller vi kan åpne filene direkte fra filsystemet.

Roo-merknader har KILDE oppbevaringspolitikk. Dette betyr kommentarene vil ikke være til stede i kompilert klasse-bytekode, og det vil ikke være noen avhengighet av Roo i distribuerte applikasjoner.

En annen, åpenbart manglende del i Bok.java klasse er getters og settere. Disse lagres i separate AspectJ ITDs-filer, som allerede nevnt. Roo vil aktivt opprettholde denne kjelekoden for oss. Derfor vil endringer i felt i en hvilken som helst klasse automatisk reflekteres i AspectJ ITD-er da Roo "overvåker" alle endringer - enten utført via Roo Shell eller direkte av en utvikler i IDE.

Roo vil ta seg av den repeterende koden som toString () eller er lik() metoder også.

Videre kan rammeverket enkelt fjernes fra prosjektet, og unngå låsning av leverandører ved å fjerne merknader og skyve inn AspectJ ITD til standard Java-kode.

4. Konklusjon

I dette raske eksemplet klarte vi å installere og konfigurere Spring Roo i STS og opprettet et lite prosjekt.

Vi brukte Roo Shell for å sette den opp og trengte ikke å skrive en eneste linje med faktisk Java-kode! Og vi klarte å få en fungerende applikasjonsprototype på få minutter, og Roo tok seg av all kjeleplatekoden for oss.

Som alltid kan koden som brukes gjennom hele diskusjonen finnes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found