Aprende a crear un “Hola Mundo” en Spring Boot.

Aprende a crear un “Hola Mundo” en Spring Boot.

Antes de comenzar a crear un “Hola mundo” en Spring Boot, recordemos ¿Qué es Spring Boot?

Spring Boot es una tecnología para crear aplicaciones autocontenidas. De este modo, el equipo se puede centrar en el desarrollo a medida. Dejando a un lado la arquitectura. Es decir, se delega en Spring Boot las labores de configuración de dependencias y el despliegue del servicio de aplicaciones. 

Ahora sí, ¡Manos a la obra!

El primer paso para comenzar a crear un microservicio “Hola mundo” con SpringBoot, es utilizar Spring Initializr de forma sencilla ingresando a https://start.spring.io/ esta herramienta nos ayuda a crear proyectos desde cero especificando de manera simple e intuitiva la configuración y las dependencias del proyecto a través de una aplicación web.

Una vez allí,  hacemos algunas modificaciones, las cuales quedan como se muestra en la siguiente imagen

Especificaciones

  • Tipo de proyecto: Gradle o Maven, el artefacto que se va a generar lo hará bien con un archivo pom.xml con su script y archivos para el wrapper de maven, bien con un archivo build.gradle y sus correspondientes archivos para el wrapper de gradle.
  • Lenguaje: El lenguaje que va orientado la aplicación
  • Spring Boot: La versión en la cual trabajaremos. La versión del starter parent de Spring Boot de la que vamos a depender. Aquí nos permiten incluso depender de versiones de desarrollo.
  • Group: Será el campo groupId en el descriptor de maven y el nombre del paquete base de las clases de nuestra aplicación.
  • Artefacto: Nombre de nuestro artefacto. En maven se va a convertir en los campos artifactId y name. En gradle irá a parar al campo jar.baseName. Este será además el nombre del archivo zip que se va a generar.
  • Dependencias: Un buscador de dependencias que básicamente se corresponden con los starters de Spring boot disponibles. El campo funciona haciendo una búsqueda por texto sobre la que se nos van dando sugerencias. 

Cuando terminamos de establecer todas las opciones y tras hacer clic en el botón «Generate Project» nos descargaremos un archivo comprimido que contiene la estructura base de nuestro proyecto.

Una vez descargado el archivo, se procede abrir con cualquier herramienta de Desarrollo en este caso IntelliJ IDEA

Para abrir el archivo descargado, basta con hacer click en File > Open > Y seleccionamos el archivo.

En caso de ser usuario de IntelliJ IDEA el propio IDE cuenta con integración con el portal de Spring Initializr, con lo que seremos capaces de generar el proyecto sin tener siquiera que abrir un navegador web. En este caso los pasos a seguir son:

  • File > New > Project

En esa ventana seleccionamos como tipo de proyecto/módulo «Spring Initializr». En este momento nos dejará escoger la JDK a utilizar de entre las existentes y demás configuraciones que vimos en la sección anterior.

Una vez damos click en Next, nos pedirá la versión de Spring y si queremos agregar alguna dependencia el IDE, este nos facilita un cuadro de búsqueda para ello.

Luego de haber creado el proyecto, haremos un recorrido sencillo de lo que es el proyecto como tal.

Vemos que se ha creado una estructura física del proyecto y nos ha creado básicamente un archivo de configuraciones (pom.xml) que son las dependencias que nosotros instalamos en el Initializer, también podemos observar que contiene toda la información del proyecto.

Ahora vemos la estructura interna, en la cual la carpeta scr tiene un main, y dentro de esta carpeta vemos que contiene un package java y dentro de ese package java está el mainclass que es el clásico de java para poder correr la aplicación “HolaMundoAplication”

Si ejecutamos el clásico de java, El IDE por defecto contiene el servidor tomcat el cual es un contenedor de servlets que se puede usar para compilar y ejecutar aplicaciones web realizadas en Java.

El puerto por defecto de este servidor es el 8080 y para acceder solo es concatenar la dirección ip localhost:puerto

En el caso de que falle el despliegue, basta con agregar en el archivo de propiedades aplication.properties a un nuevo puerto

Volvemos a ejecutar nuestra clase y validamos. Vemos que efectivamente está tomando los cambios del archivo de propiedad con el nuevo puerto.

Lo que vemos aquí es un status 400 que no encuentra algo que definir, en este caso lo que realizaremos es un primer ejercicio dentro del IntelliJ IDEA para crear un pequeño saludo para poder probar si realmente nuestro proyecto está subiendo a web.

Creamos nuestro package controller el cual es un componente de Spring capaz de recibir peticiones http y responderlas.

Las clases que definimos como un controller es responsable de procesar las llamadas entrantes (request) que ingresan a nuestra aplicación, validarlas y dar una respuesta (response).

Creamos nuestro archivo

Una vez en el archivo recién creado, vamos a crear una serie de anotaciones para poder convertir esta clase en una salida a través de anotaciones, o mandar un saludo a través del navegador.

La primera anotación es @RestController

Con esto Spring sabe que esa clase será un componente encargado de recibir llamadas.

La segunda anotación es @RequestMapping(“api”)

Con esto Spring se encarga de relacionar un método con una petición http

Una vez que hemos anotado la clase podemos definir el método y la ruta en la cual recibirá la llamada externa.

Anotamos el método que da respuesta con @GetMapping y le indicamos la ruta en la cual responderá. 

Aquí definimos el path “saludar”.

A medida que se van escribiendo las anotaciones se van importando de manera automática o en otros casos basta con importar la anotación en la parte superior.

Procedemos a verificar nuestro primer hola mundo: /api/saludar

Y efectivamente hemos construido nuestra ApiRest “Hola mundo” con Spring Boot.

Ahora, ¡cuéntanos! ¿Qué tal te pareció esta nueva entrada?

Si te genera otro tipo de error, cuéntame en los comentarios y con gusto te ayudare a resolverlo. 

Jessel Carreño

Ingeniero de integraciones

Ingeniero de Sistemas con experiencia en manejo y optimización de procesos. Capacidad de análisis y orientado a resultados con habilidad para la gestión de proyectos.

Artículos que te pueden interesar