Introduzione alla CLI di Spring Boot

1. Introduzione

Spring Boot CLI è un'astrazione della riga di comando che ci consente di eseguire facilmente i micro-servizi Spring espressi come script Groovy . Fornisce inoltre una gestione delle dipendenze semplificata e avanzata per tali servizi.

Questo breve articolo dà una rapida occhiata a come configurare Spring Boot CLI ed eseguire semplici comandi da terminale per eseguire micro-servizi preconfigurati .

Useremo Spring Boot CLI 2.0.0.RELEASE per questo articolo. La versione più recente di Spring Boot CLI può essere trovata su Maven Central.

2. Configurazione della CLI di Spring Boot

Uno dei modi più semplici per configurare Spring Boot CLI è usare SDKMAN. Le istruzioni di configurazione e installazione per SDKMAN sono disponibili qui.

Dopo aver installato SDKMAN, eseguire il seguente comando per installare e configurare automaticamente Spring Boot CLI:

$ sdk install springboot

Per verificare l'installazione, eseguire il comando:

$ spring --version

Possiamo anche installare Spring Boot CLI compilando dal sorgente e gli utenti Mac possono utilizzare pacchetti predefiniti da Homebrew o MacPorts. Consulta i documenti ufficiali per tutte le opzioni di installazione.

3. Comandi terminali comuni

La CLI di Spring Boot fornisce diversi comandi e funzionalità utili immediatamente. Una delle funzionalità più utili è Spring Shell, che racchiude i comandi con il prefisso spring necessario .

Per avviare la shell incorporata , eseguiamo:

spring shell

Da qui, possiamo inserire direttamente i comandi desiderati senza anteporre la parola chiave spring (dato che ora siamo nel guscio di primavera).

Ad esempio, possiamo visualizzare la versione corrente della CLI in esecuzione digitando:

version

Uno dei comandi più importanti è dire alla CLI di Spring Boot di eseguire uno script Groovy:

run [SCRIPT_NAME].groovy

La CLI di Spring Boot inferirà automaticamente le dipendenze o lo farà in base alle annotazioni fornite correttamente. Successivamente, avvierà un contenitore Web e un'app incorporati.

Diamo uno sguardo più da vicino a come utilizzare lo script Groovy con Spring Boot CLI!

4. Script Groovy essenziali

Groovy e Spring si uniscono alla CLI Spring Boot per consentire la rapida creazione di script di micro-servizi potenti e performanti nelle distribuzioni Groovy a file singolo .

Il supporto per applicazioni con script multipli di solito richiede strumenti di compilazione aggiuntivi come Maven o Gradle.

Di seguito tratteremo alcuni dei casi d'uso più comuni per Spring Boot CLI, riservando configurazioni più complesse per altri articoli.

Per un elenco di tutte le annotazioni Groovy supportate da Spring, controlla i documenti ufficiali.

4.1. @Afferrare

L' annotazione @Grab e le clausole di importazione in stile Java di Groovy consentono una facile gestione e iniezione delle dipendenze .

In effetti, la maggior parte delle annotazioni astraggono, semplificano e includono automaticamente le istruzioni di importazione necessarie. Questo ci consente di dedicare più tempo a pensare all'architettura e alla logica sottostante dei servizi che vogliamo implementare.

Diamo un'occhiata a come utilizzare l' annotazione @Grab :

package org.test @Grab("spring-boot-starter-actuator") @RestController class ExampleRestController{ //... }

Come possiamo vedere, l' attuatore dell'avviamento a molla è preconfigurato consentendo la distribuzione di script succinti senza richiedere un'applicazione personalizzata o proprietà ambientali, XML o altre configurazioni programmatiche , sebbene ciascuna di queste cose possa essere specificata quando necessario.

L'elenco completo degli argomenti @Grab , ciascuno che specifica una libreria da scaricare e importare, è disponibile qui.

4.2. @Controller, @RestController e @EnableWebMvc

Per accelerare ulteriormente la distribuzione, possiamo in alternativa utilizzare i "suggerimenti" forniti dalla CLI di Spring Boot per dedurre automaticamente le dipendenze corrette da importare .

Di seguito esamineremo alcuni dei casi d'uso più comuni.

Ad esempio, possiamo utilizzare le note annotazioni @Controller e @Service per impalcare rapidamente un controller e un servizio MVC standard :

@RestController class Example { @Autowired private MyService myService; @GetMapping("/") public String helloWorld() { return myService.sayWorld(); } } @Service class MyService { public String sayWorld() { return "World!"; } }

Spring Boot CLI supporta tutte le configurazioni predefinite per Spring Boot. Quindi, possiamo che le nostre app Groovy accederanno automaticamente alle risorse statiche dalle loro solite posizioni predefinite.

4.3. @ EnableWebSecurity

Per aggiungere le opzioni Spring Boot Security alla nostra app , possiamo utilizzare l' annotazione @EnableWebSecurity , che verrà quindi scaricata automaticamente dalla CLI di Spring Boot.

Di seguito, astraggeremo parte di questo processo utilizzando la dipendenza spring-boot-starter-security , che sfrutta l' annotazione @EnableWebSecurity sotto il cofano:

package bael.security @Grab("spring-boot-starter-security") @RestController class SampleController { @RequestMapping("/") public def example() { [message: "Hello World!"] } } 

For more details on how to protect resources and handle security, please check out the official documentation.

4.4. @Test

To set up a simple JUnit test, we can add the @Grab(‘junit') or @Test annotations:

package bael.test @Grab('junit') class Test { //... }

This will allow us to execute JUnit tests easily.

4.5. DataSource and JdbcTemplate

Persistent data options can be specified including DataSource or JdbcTemplate without explicitly using the @Grab annotation:

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

By simply using familiar Spring bean configuration conventions, we've grabbed the H2 embedded database and set it as the DataSource.

5. Custom Configuration

Esistono due modi principali per configurare un micro-servizio Spring Boot utilizzando Spring Boot CLI:

  1. possiamo aggiungere parametri di argomento ai nostri comandi da terminale
  2. possiamo utilizzare un file YAML personalizzato per fornire una configurazione dell'applicazione

Spring Boot cercherà automaticamente nella directory / config application.yml o application.properties

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

Possiamo anche impostare:

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

Un elenco completo delle proprietà dell'applicazione può essere trovato qui su Spring.

6. Conclusione

Questo conclude la nostra rapida introduzione alla CLI di Spring Boot! Per maggiori dettagli, controlla i documenti ufficiali.

E come al solito, il codice sorgente di questo articolo può essere trovato su GitHub.