El ABC con Spring Boot

2022-02-23 - Categorías: General / GNU/Linux / Java
Spring-boot

Pequeño howto o codekata para empezar rápido con Spring Boot en local. En este post vemos el SDK Man! que facilita mucho el trabajo. Es la herramienta que se recomienda desde la documentación oficial de Spring, es para entornos basados en UNIX, como GNU/Linux, Mac.. Se puede instalar siguiendo las instrucciones desde https://sdkman.io/. Podemos ejecutar el instalador con:

curl -s "https://get.sdkman.io" | bash

..y seguir las instrucciones de la web. Lo siguiente más sencillo es instalar todo lo necesario. Necesitamos en este caso Java, Maven y Spring, desde línea de comandos:

sdk install java
sdk install maven
sdk install springboot

Java y Maven también se pueden instalar desde el sistema operativo sin usar el SDK Man!. Por internet se suele recomendar Maven en vez de Gradle como gestor de dependencias Java, por ser más sencillo de manejar. Aquí más información por si estás en otro sistema operativo, y otras cosas:
https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.installing.cli

Primeros comandos desde el CLI de Spring

Para empezar a juguetear con el comando de Spring, veremos que si lanzamos la ayuda:

spring --help

..tendremos los siguientes comandos disponibles:

El que nos interesará para crear nuestro proyecto será el spring init. Igualmente podemos curiosearlo rápido haciendo:

spring --help init

Qué tenemos disponible para inicializar un proyecto nuevo

Si vamos al grano, lo siguiente interesante es ver qué dependencias vamos a querer tener instaladas en nuestro proyecto. Esto lo podemos hacer tal que así, aparte de que si luego queremos añadir nuevas dependencias podremos añadirlas:

spring init --list

Ahora veremos en este listado que tenemos dependencias interesantes como por ejemplo:

  • web para hacer servicios que respondan a peticiones web, de forma REST, o RESTful..
  • security.
  • quartz para lanzar tareas programadas.
  • postgresql.
  • mariadb.
  • mysql.
  • kafka.
  • devtools que proporcionan utilidades como la recarga del servicio en desarrollo cuando guardamos cambios.
  • data-jpa para usar Hibernate.
  • etc..

Iniciando el esqueleto de un servicio web Spring Boot

Al grano, desde línea de comandos lo podemos hacer con el comando siguiente:

spring init -d=web,session,security,restdocs,quartz,okta,mariadb,mail,kafka,kafka-streams,devtools,data-rest,data-rest-explorer,data-jpa,flyway,mail backend

Podemos ignorar el gestor de dependencias porque viene por defecto Maven, aunque se puede especificar usando el parámetro –build:

spring init -d=web,devtools --build=maven backend

Lo siguiente será entrar al directorio backend/ reción generado para arrancarlo:

cd backend/
mvn spring-boot:run

Y si todo ha ido bien, tendremos que ver una pantalla como la siguiente:

..ya lo tenemos todo listo funcionando en local, y podemos abrir el proyecto en http://localhost:8080/ para ponernos a programar.

Si queremos instalar nuevas dependencias

En la fecha en que escribo este post, no hay manera desde línea de comandos para añadir nuevas dependencias automáticamente. Hay que editar el fichero pom.xml. Una alternativa es usar los IDEs que te ayudarán a manejar las dependencias actuales.

Por ejemplo, en VSCode podemos tener las siguientes dependencias:

Gestionando dependencias de Maven desde VSCode..

Desde aquí podemos añadir las indicadas arriba en este post en el inicializador: web, kafka, jpa, quartz, etc.. cualquier dependencia de entre todas las que hay disponibles de la comunidad Java en Maven:
https://mvnrepository.com/

Si le damos al + en VSCode nos invitará a buscar del repositorio:

..con lo que si escribimos por ejemplo org.springframework/spring-web nos irá mostrando las opciones disponibles, y así sucesivamente. Sólo me queda remitirte a la documentación oficial para más información:
https://spring.io/projects/spring-boot

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

 

© 2022 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.