Hace unos dias me topé con un módulo que no conocía de Spring. Este módulo de Spring está pensado para hacer aplicaciones de tipo shell. Se puede encontrar más información del framework en el siguiente enlace https://spring.io/projects/spring-shell

La verdad es que tiene una pinta interesante, sobre todo pensando en pequeñas utilidades que queramos hacer para uso personal, y que podamos ejecutarlo de manera local. Por ejemplo, una utilidad para eliminar un registro específico de una base de datos de manera repetitiva, es decir, que habitualmente borrramos el mismo registro. En ese caso, la posiblidad de tener un script implementado con este tipo de herramientas podría ser muy interesante.

La verdad es que es bastante fácil de cacharrear, y que de manera simple utilizando Spring Initializr y unos cuandos métodos y anotaciones tenemos nuestra primera herramienta de tipo shell.

Es posible encontrar en este repositorio las distintas pruebas que he estado realizando https://github.com/chintoz/hello-spring-shell

Después de juguetear con este módulo he visto los siguientes puntos interesantes:

  • Ofrece un conjunto de comandos por defecto. Dentro de esos comandos ofrece la posibilidad de mostrar una ayuda de estos comandos, y dicho comando es capaz de identificar los comandos que hemos añadido para mostrar la ayuda
  • Es capaz de relacionar comandos de manera que podamos ejecutarlos de manera enlazada. Por ejemplo, un comando para conectar y otro para descargar. El de descargar sólo está disponible cuando se ha ejecutado con éxito el de conectar
  • Permite customizar los parámetros de entrada con distintas maneras de recibirlos (parametro a parámetro, o array de parámetros)
  • Permite customizar el shell de forma que podemos realizar cambios en el texto del shell en función de los comandos ejecutados.

La verdad es que es módulo muy interesante si te gusta juguetear con scripts. La verdad es que cuando tenga alguna posiblidad intentaré utilizarlo.