Introduksjon til Spring Boot CLI

1. Introduksjon

Spring Boot CLI er en kommandolinjeabstraksjon som lar oss enkelt kjøre Spring-mikrotjenester uttrykt som Groovy-skript. Det gir også forenklet og forbedret avhengighetsadministrasjon for disse tjenestene.

Denne korte artikkelen tar en rask titt på hvordan du konfigurerer Spring Boot CLI og utfører enkle terminalkommandoer for å kjøre forhåndskonfigurerte mikrotjenester.

Vi bruker Spring Boot CLI 2.0.0.RELEASE for denne artikkelen. Den nyeste versjonen av Spring Boot CLI finnes på Maven Central.

2. Sette opp fjærstøvel CLI

En av de enkleste måtene å sette opp Spring Boot CLI er å bruke SDKMAN. Installasjons- og installasjonsinstruksjoner for SDKMAN finner du her.

Etter installering av SDKMAN, kjør følgende kommando for automatisk å installere og konfigurere Spring Boot CLI:

$ sdk installer springboot

For å bekrefte installasjonen, kjør kommandoen:

$ vår - versjon

Vi kan også installere Spring Boot CLI ved å kompilere fra kilden, og Mac-brukere kan bruke forhåndsbygde pakker fra Homebrew eller MacPorts. Se de offisielle dokumentene for alle installasjonsalternativer.

3. Vanlige terminalkommandoer

Spring Boot CLI gir flere nyttige kommandoer og funksjoner utenom boksen. En av de mest nyttige funksjonene er Spring Shell, som bryter kommandoer med det nødvendige vår prefiks.

Til start det innebygde skallet, vi løper:

vårskall

Herfra kan vi skrive direkte inn ønskede kommandoer uten å forvente vår nøkkelord (siden vi nå er i vårskall).

For eksempel kan vi vise gjeldende versjon av den løpende CLI ved å skrive:

versjon

En av de viktigste kommandoene er å fortelle Spring Boot CLI å kjøre et Groovy-skript:

kjør [SCRIPT_NAME]

Spring Boot CLI vil enten automatisk avlede avhengighetene, eller vil gjøre det gitt de riktig leverte kommentarene. Etter dette vil den starte en innebygd webcontainer og app.

La oss se nærmere på hvordan du bruker Groovy-skript med Spring Boot CLI!

4. Viktige groovy-skript

Groovy og Spring kommer sammen med Spring Boot CLI til la kraftige, ytende mikrotjenester raskt skriptes i Groovy-distribusjoner i en fil.

Støtte for applikasjoner med flere skript krever vanligvis tilleggsverktøy som Maven eller Gradle.

Nedenfor vil vi dekke noen av de vanligste brukssakene for Spring Boot CLI, og reservere mer komplekse oppsett for andre artikler.

For en liste over alle vårstøttede Groovy-merknader, vennligst sjekk de offisielle dokumentene.

4.1. @Gripe

De @Gripe kommentar og Groovys Java-esque import klausuler tillater enkel avhengighetsstyring og injeksjon.

De fleste merknader trekker faktisk sammen, forenkler og inkluderer automatisk de nødvendige importuttalelsene. Dette lar oss bruke mer tid på å tenke på arkitektur og den underliggende logikken til tjenestene vi ønsker å distribuere.

La oss ta en titt på hvordan du bruker @Gripe kommentar:

pakke org.test @Grab ("spring-boot-starter-actuator") @RestController klasse EksempelRestController {// ...}

Som vi kan se, spring-boot-starter-actuator kommer forhåndskonfigurert slik at kortfattet skriptdistribusjon kan kreves uten å kreve et tilpasset program eller miljøegenskaper, XML, eller annen programmatisk konfigurasjon, selv om hver av disse tingene kan spesifiseres når det er nødvendig.

Hele listen over @Gripe argumenter - hver spesifiserer et bibliotek for nedlasting og import - er tilgjengelig her.

4.2. @Controller, @RestController, og @EnableWebMvc

For å fremskynde distribusjonen ytterligere, kan vi alternativt benytt Spring Boot CLIs medfølgende "gripetips" for automatisk å utlede korrekte avhengigheter å importere.

Vi vil gå gjennom noen av de vanligste brukssakene nedenfor.

For eksempel kan vi bruke det kjente @Kontrollør og @Service kommentarer til stillas raskt en standard MVC-kontroller og service:

@RestController klasse Eksempel {@Autowired private MyService myService; @GetMapping ("/") offentlig streng halloWorld () {return myService.sayWorld (); }} @Serviceklasse MyService {public String sayWorld () {return "World!"; }}

Spring Boot CLI støtter all standardkonfigurasjon for Spring Boot. Så vi kan ha Groovy-appene våre automatisk tilgang til statiske ressurser fra deres vanlige standardplasser.

4.3. @EnableWebSecurity

Til legg til Spring Boot Security-alternativer i appen vår, kan vi bruke @EnableWebSecurity merknader, som deretter automatisk lastes ned av Spring Boot CLI.

Nedenfor vil vi abstrakte en del av denne prosessen ved hjelp av vår-boot-starter-sikkerhet avhengighet, som utnytter @EnableWebSecurity kommentar under panseret:

pakke bael.security @Grab ("spring-boot-starter-security") @ RestController klasse SampleController {@RequestMapping ("/") public def eksempel () {[melding: "Hello World!"]}} 

For mer informasjon om hvordan du beskytter ressurser og håndterer sikkerhet, vennligst sjekk den offisielle dokumentasjonen.

4.4. @Test

Til sette opp en enkel JUnit-test, kan vi legge til @Grab (‘junit ') eller @Test kommentarer:

pakke bael.test @Grab ('junit') klasse Test {// ...}

Dette vil tillate oss å utføre JUnit-tester enkelt.

4.5. Datakilde og JdbcTemplate

Vedvarende datalternativer kan spesifiseres inkludert Datakilde eller JdbcTemplate uten å eksplisitt bruke @Gripe kommentar:

pakke bael.data @Grab ('h2') @Configuration @EnableWebMvc @ComponentScan ('bael.data') klasse DataConfig {@Bean DataSource dataSource () {return new EmbeddedDatabaseBuilder () .setType (EmbeddedDatabaseType.H2) .build (). ; }}

Ved å bare bruke kjente konfigurasjoner for vårbønnekonfigurasjon, vi har tatt den innebygde H2-databasen og satt den som Datakilde.

5. Egendefinert konfigurasjon

Det er to primære måter å konfigurere en Spring Boot-mikrotjeneste ved hjelp av Spring Boot CLI:

  1. vi kan legge til argumentparametere i terminalkommandoene våre
  2. vi kan bruke en tilpasset YAML-fil for å gi en applikasjonskonfigurasjon

Spring Boot vil automatisk søke i / config katalog for application.yml eller application.properties

├── app ├── app.groovy ├── config ├── application.yml ... 

Vi kan også sette opp:

├── app ├── example.groovy ├── eksempel.yml ...

En full liste over applikasjonsegenskaper finner du her på våren.

6. Konklusjon

Dette avslutter vår raske gjennomgang av Spring Boot CLI! For mer informasjon, sjekk ut de offisielle dokumentene.

Og som vanlig kan kildekoden for denne artikkelen finnes på GitHub.