Que es Spring Boot y su relación con los microservicios

Dada la creciente tendencia de migrar nuestras aplicaciones a una arquitectura de microservicios, es cada vez más importante contar con tecnologías que nos ayuden a agilizar el desarrollo, pero sobre todo, que nos permita crear aplicaciones muy ligeras que consuman el menor número de recursos y es justo allí cuando entra Spring Boot.

 

Es posible que te pueda interesa mi artículo “Que son los microservicios”, donde explico los explico a detalle.

 

Que es Spring Boot:

Para los que no están familiarizados con esta tecnología, podríamos decir que Spring Boot es una herramienta que nace con la finalidad de simplificar aun más el desarrollo de aplicaciones basadas en el ya popular framework Spring Core. Spring Boot busca que el desarrollador solo si centre en el desarrollo de la solución, olvidándose por completo de la compleja configuración que actualmente tiene Spring Core para poder funcionar.

 

Spring Boot centra su éxito en las siguientes características que lo hacen extremadamente fácil de utilizar:

  • Configuración: Spring Boot cuenta con un complejo módulo que autoconfigura todos los aspectos de nuestra aplicación para poder simplemente ejecutar la aplicación, sin tener que definir absolutamente nada.
  • Resolución de dependencias: Con Spring Boot solo hay que determinar que tipo de proyecto estaremos utilizando y el se encarga de resolver todas las librerías/dependencias para que la aplicación funcione.
  • Despliegue: Spring Boot se puede ejecutar como una aplicación Stand-alone, pero también es posible ejecutar aplicaciones web, ya que es posible desplegar las aplicaciones mediante un servidor web integrado, como es el caso de Tomcat, Jetty o Undertow.
  • Métricas: Por defecto, Spring Boot cuenta con servicios que permite consultar el estado de salud de la aplicación, permitiendo saber si la aplicación está prendida o apagada, memoria utilizada y disponible, número y detalle de los Bean’s creado por la aplicación, controles para el prendido y apagado, etc.
  • Extensible: Spring Boot permite la creación de complementos, los cuales ayudan a que la comunidad de Software Libre cree nuevos módulos que faciliten aún más el desarrollo.

 

Como funciona Spring Boot:

 

La mejor forma de entender cómo funciona Spring Boot es con un poco de código, por lo que veremos como es que se crea una aplicación. Básicamente existe dos formas de crear una aplicación, mediante ayuda del IDE o con ayuda de la página de Spring Boot:

 

Spring Start:

Spring Start es una página web que provee Spring para crear un proyecto por nosotros, para lo cual, nos solicitará los datos básicos del proyecto:

Como podremos observar, es posible crear un proyecto basado en Maven o en Gradle, también podemos definir si el lenguaje será Java, Kotlin o Grovy, también nos pedirá la versión de Spring Boot y el grupo (namespace) y nombre del artefacto (nombre del proyecto), finalmente nos pedirá las que selecciones las dependencias, en nuestro caso, solo seleccionaremos Web.

Si desconoces los módulos disponibles, puedes presionar el texto que dice “ Switch to the full versión.” Que se encuentra justo de bajo del botón para generar el proyecto (“Generate Project“), para que desplegará todos los módulos disponibles, los cuales son muchísimos para mostrarlos en una imagen.

Una vez configurado el proyecto, solo nos resta presionar el botón “Generate Project” e iniciará la descarga del proyecto preconfigurado, el cual podrás importar en cualquier IDE que soporte Maven o Gladle.

 

 

Spring Boot Suite:

La segunda y más recomendable opción es utilizar Spring Boot Suite, el IDE por excelencia para el desarrollo de aplicaciones basadas en cualquier producto de Spring, el cual ellos mismo desarrollan y lo puedes descargar desde aquí.

Spring Boot Suite es un IDE basado en Eclipse, por lo que no tendrás problemas en utilizarlos rápidamente. Para crear un proyecto tan solo es necesario dirigirse al menú principal y dar click en File => New => Spring Starter Project, el cual desplegará la siguiente pantalla:

Como podemos ver, nos pedirá los mismos datos que la página web, como grupo, nombre, type de proyecto (Maven Gladle), etc. Presionamos Next para continuar:

En esta nueva pantalla nos pedirá que selecciones las dependencias, en nuestro caso, solo seleccionaremos el módulo Web y damos en finalizar.

Con este último paso tendremos el proyecto creado y nos creará la clase HelloWorldApplication, la cual es lo único necesario para ejecutar nuestra aplicación:

 

 

 

 

En este momento podríamos ejecutar nuestra aplicación Web, pero no tendría mucho sentido, pues no hemos desarrollado nada, por ese motivo, vamos a crear un servicio REST para poder probarlo desde el navegador. Para ello, crearemos una nueva clase llamada HelloRest en el mismo paquete que la clase anterior:

 

 

Una vez creada, ejecutamos la aplicación dando click derecho sobre el proyecto y seleccionando Run As => Spring Boot App, lo que iniciará el despliegue de la aplicación sobre un Tomcat embebido:

 

Lo siguiente será ir al navegador y entrar a la URL http://localhost:8080/hello para ver lo siguiente:

Conclusiones

Como hemos podido observar, mediante Spring Boot es posible crear aplicaciones completas que se ejecuten en un entorno reducido, pues no es necesario tener un servidor de aplicaciones completo que nos consumirá una gran cantidad de recursos, además, Spring boot tiene complementos muy interesantes como Spring Cloud, el cual nos permite crear aplicaciones “Cloud Native”, es decir, aplicaciones diseñadas desde el inicio para ser ejecutadas en la nube.

 

Todas estas ventajas que hemos analizado son clave para crear microservicios, pues ya no es necesario instalar servidores de aplicaciones o tener configuraciones muy complejas para poder

Artículos relacionados

Como crear un Connection Pool en WebLogic En la entrada pasada les enseñe los pasos para crear un DataSource (Como crear un Data Source en WebLogic) los cuales serán necesarios para la configu...
Java 8 – Métodos referenciados Los métodos referenciados son una de las nuevas características de Java 8 que nos permite hacer referencia a los métodos y constructores por medio de ...
Java 8 – Streams Los Streams son una secuencia de elementos que soportan operaciones de agregación secuencial y paralela. Una de las nuevas características de Java 8 q...

Oscar Blancarte

Ideológico, Innovador y emprendedor, Padre, Tecnólogo y Autor, amante de la ciencia y la tecnología en todos sus colores y sabores. Arquitecto de software & Full Stack Developer con experiencia en la industria del desarrollo de software y la consultoría. Amante de la programación y el Ajedrez.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *