1. Introducción
Spring Boot CLI es una abstracción de línea de comandos que nos permite ejecutar fácilmente microservicios Spring expresados como scripts Groovy . También proporciona una gestión de dependencias simplificada y mejorada para esos servicios.
Este breve artículo da un vistazo rápido a cómo configurar Spring Boot CLI y ejecutar comandos de terminal simples para ejecutar microservicios preconfigurados .
Usaremos Spring Boot CLI 2.0.0.RELEASE para este artículo. La versión más reciente de Spring Boot CLI se puede encontrar en Maven Central.
2. Configuración de la CLI de Spring Boot
Una de las formas más fáciles de configurar Spring Boot CLI es usar SDKMAN. Las instrucciones de configuración e instalación para SDKMAN se pueden encontrar aquí.
Después de instalar SDKMAN, ejecute el siguiente comando para instalar y configurar automáticamente Spring Boot CLI:
$ sdk install springboot
Para verificar la instalación, ejecute el comando:
$ spring --version
También podemos instalar Spring Boot CLI compilando desde la fuente, y los usuarios de Mac pueden usar paquetes prediseñados de Homebrew o MacPorts. Consulte los documentos oficiales para conocer todas las opciones de instalación.
3. Comandos de terminal comunes
Spring Boot CLI proporciona varios comandos y funciones útiles listos para usar. Una de las características más útiles es Spring Shell, que envuelve los comandos con el prefijo de primavera necesario .
Para iniciar el shell incrustado , ejecutamos:
spring shell
Desde aquí, podemos ingresar directamente los comandos deseados sin pre-pendiente de la palabra clave spring (ya que ahora estamos en el shell de Spring).
Por ejemplo, podemos mostrar la versión actual de la CLI en ejecución escribiendo:
version
Uno de los comandos más importantes es decirle a Spring Boot CLI que ejecute un script Groovy:
run [SCRIPT_NAME].groovy
Spring Boot CLI inferirá automáticamente las dependencias o lo hará dadas las anotaciones proporcionadas correctamente. Después de esto, lanzará una aplicación y un contenedor web integrados.
¡Echemos un vistazo más de cerca a cómo usar el script Groovy con Spring Boot CLI!
4. Guiones Groovy esenciales
Groovy y Spring se unen con Spring Boot CLI para permitir que los microservicios potentes y de alto rendimiento se escriban rápidamente en implementaciones de Groovy de un solo archivo .
El soporte para aplicaciones con múltiples secuencias de comandos generalmente requiere herramientas de compilación adicionales como Maven o Gradle.
A continuación, cubriremos algunos de los casos de uso más comunes para Spring Boot CLI, reservando configuraciones más complejas para otros artículos.
Para obtener una lista de todas las anotaciones Groovy compatibles con Spring, consulte los documentos oficiales.
4.1. @Agarrar
La anotación @Grab y las cláusulas de importación al estilo Java de Groovy permiten una fácil administración e inyección de dependencias .
De hecho, la mayoría de las anotaciones abstraen, simplifican e incluyen automáticamente las declaraciones de importación necesarias. Esto nos permite dedicar más tiempo a pensar en la arquitectura y la lógica subyacente de los servicios que queremos implementar.
Echemos un vistazo a cómo usar la anotación @Grab :
package org.test @Grab("spring-boot-starter-actuator") @RestController class ExampleRestController{ //... }
Como podemos ver, spring-boot-starter-actuator viene preconfigurado, lo que permite la implementación de un script sucinto sin requerir una aplicación personalizada o propiedades ambientales, XML u otra configuración programática , aunque cada una de esas cosas se puede especificar cuando sea necesario.
La lista completa de argumentos de @Grab , cada uno de los cuales especifica una biblioteca para descargar e importar, está disponible aquí.
4.2. @Controller, @RestController y @EnableWebMvc
Para agilizar aún más la implementación, podemos utilizar alternativamente las "sugerencias de captura" proporcionadas por Spring Boot CLI para inferir automáticamente las dependencias correctas para importar .
A continuación, repasaremos algunos de los casos de uso más comunes.
Por ejemplo, podemos usar las conocidas anotaciones @Controller y @Service para andamiar rápidamente un controlador y servicio MVC estándar :
@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 admite toda la configuración predeterminada para Spring Boot. Entonces, podemos que nuestras aplicaciones Groovy accedan automáticamente a recursos estáticos desde sus ubicaciones predeterminadas habituales.
4.3. @ EnableWebSecurity
Para agregar opciones de Spring Boot Security a nuestra aplicación , podemos usar la anotación @EnableWebSecurity , que luego será descargada automáticamente por Spring Boot CLI.
A continuación, resumiremos parte de este proceso utilizando la dependencia spring-boot-starter-security , que aprovecha la anotación @EnableWebSecurity debajo del capó:
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
Hay dos formas principales de configurar un microservicio Spring Boot utilizando Spring Boot CLI:
- podemos agregar parámetros de argumentos a nuestros comandos de terminal
- podemos usar un archivo YAML personalizado para proporcionar una configuración de aplicación
Spring Boot buscará automáticamente el directorio / config para application.yml o application.properties
├── app ├── app.groovy ├── config ├── application.yml ...
También podemos configurar:
├── app ├── example.groovy ├── example.yml ...
Puede encontrar una lista completa de propiedades de la aplicación aquí en Spring.
6. Conclusión
¡Con esto concluye nuestro rápido recorrido por Spring Boot CLI! Para obtener más detalles, consulte los documentos oficiales.
Y, como es habitual, el código fuente de este artículo se puede encontrar en GitHub.