Introduction à la CLI Spring Boot

Introduction à la CLI Spring Boot

1. introduction

Spring Boot CLI est uncommand-line abstraction that allows us to easily run Spring micro-services expressed as Groovy scripts. Il fournit également une gestion simplifiée et améliorée de la dépendance pour ces services.

Ce court article examine rapidementhow to configure Spring Boot CLI and execute simple terminal commands to run pre-configured micro-services.

Nous utiliserons Spring Boot CLI 2.0.0.RELEASE pour cet article. La dernière version de Spring Boot CLI se trouve à l'adresseMaven Central.

2. Configuration de la CLI Spring Boot

L’un des moyens les plus simples de configurer la CLI Spring Boot consiste à utiliser SDKMAN. Les instructions de configuration et d'installation de SDKMAN sont disponibleshere.

Après avoir installé SDKMAN, exécutez la commande suivante pour installer et configurer automatiquement Spring CLI:

$ sdk install springboot

Pour vérifier l'installation, exécutez la commande:

$ spring --version

Nous pouvons également installer Spring Boot CLI en compilant à partir des sources, et les utilisateurs Mac peuvent utiliser des packages pré-construits à partir deHomebrew ouMacPorts. Voir lesdocsofficiels pour toutes les options d'installation.

3. Commandes de terminal communes

Spring Boot CLI fournit plusieurs commandes et fonctionnalités utiles prêtes à l'emploi. L'une des fonctionnalités les plus utiles est Spring Shell, qui encapsule les commandes avec le préfixespring nécessaire.

Pourstart the embedded shell, nous exécutons:

spring shell

De là, nous pouvons entrer directement les commandes souhaitées sans pré-attendre le mot-cléspring (puisque nous sommes maintenant dans Spring Shell).

Par exemple, nous pouvonsdisplay the current version de la CLI en cours d'exécution en tapant:

version

L'une des commandes les plus importantes est de dire à Spring Boot CLI d'exécuter un script Groovy:

run [SCRIPT_NAME].groovy

Spring Boot CLI déduira automatiquement les dépendances ou le fera en fonction des annotations correctement fournies. Après cela, il lancera un conteneur Web intégré et une application.

Voyons de plus près comment utiliser le script Groovy avec Spring Boot CLI!

4. Scripts Groovy essentiels

Groovy et Spring sont associés à Spring Boot CLI pourallow powerful, performant micro-services to be quickly scripted in single-file Groovy deployments.

La prise en charge des applications à scripts multiples nécessite généralement des outils de construction supplémentaires tels queMaven ouGradle.

Ci-dessous, nous aborderons certains des cas d'utilisation les plus courants de Spring Boot CLI, en réservant des configurations plus complexes pour d'autres articles.

Pour une liste de toutes les annotations Groovy prises en charge par Spring, veuillez consulter lesdocs officiels.

4.1. @Grab

L'annotation@Grab et les clauses Java-esqueimport de Groovy autorisenteasy dependency management and injection.

En fait, la plupart des annotations résument, simplifient et incluent automatiquement les instructions d'importation nécessaires. Cela nous permet de passer plus de temps à réfléchir à l'architecture et à la logique sous-jacente des services que nous souhaitons déployer.

Voyons comment utiliser l'annotation@Grab:

package org.test

@Grab("spring-boot-starter-actuator")

@RestController
class ExampleRestController{
  //...
}

Comme nous pouvons le voir,spring-boot-starter-actuator comes pre-configured allowing for succinct script deployment without requiring a customized application or environmental properties, XML, or other programmatic configuration, bien que chacun de ces éléments puisse être spécifié si nécessaire.

La liste complète des arguments de@Grab - chacun spécifiant une bibliothèque à télécharger et à importer - est disponiblehere.

4.2. @Controller, @RestController, et@EnableWebMvc

Pour accélérer davantage le déploiement, nous pouvons égalementutilize Spring Boot CLI’s provided “grab hints” to automatically infer correct dependencies to import.

Nous allons passer en revue certains des cas d'utilisation les plus courants ci-dessous.

Par exemple, nous pouvons utiliser les annotations familières@Controller et@Service versquickly scaffold a standard MVC controller and service:

@RestController
class Example {

    @Autowired
    private MyService myService;

    @GetMapping("/")
    public String helloWorld() {
        return myService.sayWorld();
    }
}

@Service
class MyService {
    public String sayWorld() {
        return "World!";
    }
}

Spring CLI prend en charge toutes les configurations par défaut pour Spring Boot. Ainsi, nous pouvons que nos applications Groovy accèdent automatiquement aux ressources statiques à partir de leurs emplacements par défaut habituels.

4.3. àEnableWebSecurity

Pouradd Spring Boot Security options to our app, nous pouvons utiliser l'annotation@EnableWebSecurity, qui sera ensuite automatiquement téléchargée par Spring Boot CLI.

Ci-dessous, nous allons résumer une partie de ce processus en utilisant la dépendancespring-boot-starter-security, qui exploite l'annotation@EnableWebSecurity sous le capot:

package bael.security

@Grab("spring-boot-starter-security")

@RestController
class SampleController {

    @RequestMapping("/")
    public def example() {
        [message: "Hello World!"]
    }
}

Pour plus de détails sur la manière de protéger les ressources et de gérer la sécurité, veuillez consulter lesdocumentation officiels.

4.4. àTest

Àset up a simple JUnit test, nous pouvons ajouter les annotations@Grab(‘junit') ou@Test:

package bael.test

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

Cela nous permettra d’exécuter facilement des tests JUnit.

4.5. DataSource etJdbcTemplate

Les options de données persistantes peuvent être spécifiées, notammentDataSource ouJdbcTemplatewithout 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, nous avons récupéré la base de données intégrée H2 et l'avons définie commeDataSource.

5. Configuration personnalisée

Il existe deux méthodes principales pour configurer un micro-service Spring Boot à l'aide de la CLI Spring Boot:

  1. nous pouvons ajouter des paramètres d'argument à nos commandes de terminal

  2. nous pouvons utiliser un fichier YAML personnalisé pour fournir une configuration d'application

Spring Boot recherchera automatiquement dans le répertoire/configapplication.yml ouapplication.properties

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

Nous pouvons également mettre en place:

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

Une liste complète des propriétés de l'application est disponiblehere sur Spring.

6. Conclusion

Ceci conclut notre visite rapide de Spring Boot CLI! Pour plus de détails, consultez lesdocs officiels.

Et comme d'habitude, le code source de cet article peut être trouvéover on GitHub.