Saltar al contenido principal
Página

Tema 4.1 - Introducción

¿Qué es Spring y SpringBoot?

Spring Framework, proporciona un modelo integral de programación y configuración para aplicaciones empresariales modernas basadas en Java.

Entre las características principales de Spring están la inyección de dependencias y diversos módulos para utilizar como Spring JDBC, MVC, Security, AOP, ORM y Spring Test;  además de otras características con ciertos servicios como:

  • Tecnologías: como la inyección de dependencias, eventos, recursos, i18n, validación, enlace de datos, conversión de tipo, SpEL.
  • Acceso a datos: soporte DAO, JDBC, ORM, Marshalling XML.
  • Gestión de transacciones
  •  Integración: comunicación remota, JMS, JCA, JMX, correo electrónico, tareas, programación, caché.
  • Pruebas (Testing): simulacro de objetos, el framework TestContext, Spring MVC prueba, WebTestClient.
  • Programación orientada a aspectos (AOP): permite la implementación de rutinas transversales.
  • MVC (Modelo Vista Controlador).
  • Seguridad.
  • Frameworks web: Spring WebFlux y Spring MVC.
  • Procesamiento de datos por lotes.
  • Administración Remota: a través de este módulo se puede configurar la visibilidad y gestión de los objetos Java para la configuración local o remota vía JMX.
  •  Liviano debido a su implementación POJO (Plain Old Java Object), Spring Framework no obliga al programador a heredar ninguna clase ni a implementar ninguna interfaz


Con lo visto, podemos afirmar entonces que Spring, es un framework bastante potente y útil a la hora de programar con Java, pero tiene un pequeño problema, y es que para configurar el entorno básico del proyecto, este resulta ser bastante tedioso.

 Spring Boot:  este simplemente surge como una solución o complemento para el Framework Spring, donde encontramos algunas características como:

  • Incorporación directa de aplicaciones como apache Tomcat o Jetty, eliminando la necesidad de incluir archivos WAR.
  • Simplificación de la configuración de maven gracias a los Project Object Models.
  • Configuración automática: Spring boot cuenta con un módulo complejo que autoconfigura todos los aspectos de la aplicación para simplemente ejecutarla.
  • Características no funcionales, como métricas o configuraciones externalizadas.
  • Extensible: Spring Boot permite la creación de complementos, que ayudan a que la comunidad de software libre crear nuevos módulos que faciliten aún más el desarrollo.


Por lo anterior, si se tiene la idea de que por usar SpringBoot no se está usando Spring, se cae en un error, ya que como se muestra en la imagen, por debajo de SpringBoot está el framework con sus características.

Composición de Spring


No obstante, no es de asustarse, pues entre las dos existe una diferencia y es que al usar SpringBoot estamos disminuyendo tiempo en el desarrollo, ya que SpringBoot reduce la complejidad de los proyectos, proporcionando la estructura básica configurada de éste, incluyendo pautas para usarlo y las bibliotecas relevantes para la aplicación.

A modo de ilustración, veamos la imagen que está a continuación, referente a un proyecto de batidos, en la primera parte tendríamos que añadir el azúcar, la leche, agua y las frutas (con el framework Spring sería configurar puertos, arrancar TomCat, etc), mientras que en la otra se omitiría esa parte y nos enfocaríamos simplemente en agregar las frutas (con SpringBoot, dejaríamos de lado la configuración tediosa y nos enfocaríamos al objetivo principal del desarrollo)

Ejemplo de Spring en una empresa de batidos

Es de resaltar que esta solución ha sido reconocida como una de las mejores para desarrollar micro servicios en java. No obstante, pese a los casi 20 módulos del marco básico, Spring Boot no se ha encajado en la descripción de framework, para aplicaciones web ni de una solución clásica para aplicaciones de escritorio.


Requisitos de instalación y configuración de Spring Boot

Como requisitos básicos para su instalación está claramente tener el componente de Java Runtime Enviroment, tener al menos la versión 8 (1.8) del JDK, herramienta de compilación como Maven (a partir de 3.3) o gradle (a partir de 4.4) y la versión actual del framework Spring.


Última modificación: miércoles, 16 de marzo de 2022, 16:21