En este artículo vamos a describir de manera rápida el framework de Spring mismo que nos será de mucha utilidad para entender todo el ecosistema del mejor framework para Java.
Spring es un framework poderoso y flexible centrado en la creación de aplicaciones Java.
Uno de los principales beneficios de Spring es que se encarga de la mayoría de los aspectos de bajo nivel de la creación de una aplicación para permitirle realmente concentrarse en las características y la lógica empresarial.
Otro punto fuerte en Spring es que, si bien el marco es bastante antiguo, se actualiza y optimiza continuamente, lo que lo hace bastante actualizado y alineado con el ecosistema de Java en este momento.
Spring es el más popular framework para java que existe, mismo que según sus mismos creadores se está convirtiendo en una suite que tiene una solución específica a cada uno de los posibles requerimientos en cuanto a desarrollo de software se refiere.
Caracteristicas
Ligero
Cuando se trata de tamaño y transparencia. La versión básica de Spring Framework es de alrededor de 1MB. Y la sobrecarga de procesamiento también es muy despreciable.
Inversión de control (IOC)
El programador no necesita crear los objetos, sino que simplemente describe cómo se debe crear. No es necesario conectar directamente sus componentes y servicios en el programa, en lugar de eso simplemente describa qué servicios son necesarios para cada componente en un archivo de configuración. El contenedor Spring IOC es el responsable de atarlo todo.
Aspecto orientado (AOP)
Spring soporta la programación orientada a aspectos. La programación orientada a aspectos se refiere al paradigma de programación que aísla funciones secundarias o de apoyo de la lógica de negocios del programa principal. AOP es una tecnología prometedora para separar las preocupaciones transversales, algo que suele ser difícil de hacer en la programación orientada a objetos. La modularidad de la aplicación se incrementa de esa manera y su mantenimiento se vuelve significativamente más fácil.
Contenedor
Spring contiene y administra el ciclo de vida y la configuración de los objetos de la aplicación.
MVC Framework
Spring viene con el marco de la aplicación web MVC, construido sobre la funcionalidad principal de Spring. Este marco es altamente configurable a través de interfaces de estrategia, y se adapta a múltiples tecnologías de visualización como JSP, Velocity, Tiles, iText y POI. Pero también otros marcos se pueden usar fácilmente en lugar de Spring MVC Framework.
Gestión de transacciones
Spring Framework proporciona una capa de abstracción genérica para la gestión de transacciones. Esto permite al desarrollador agregar los gestores de transacciones conectables, y facilita la demarcación de las transacciones sin tener que lidiar con problemas de bajo nivel. El soporte de transacciones de Spring no está vinculado a los entornos J2EE y también se puede utilizar en entornos sin contenedores.
Manejo de excepciones JDBC
La capa de abstracción JDBC de Spring ofrece una jerarquía de excepciones significativa, que simplifica la estrategia de manejo de errores. Spring proporciona los mejores servicios de integración con Hibernate, JDO e iBATIS.
Arquitectura
Spring es una arquitectura bien organizada que consta de siete módulos. Los módulos en el framework Spring son:
Spring AOP
Se lo utiliza para proporcionar servicios empresariales declarativos, especialmente como un reemplazo para los servicios declarativos EJB. El servicio más importante de este tipo es la gestión declarativa de transacciones, que se basa en la abstracción de transacciones de Spring.
Spring ORM
El paquete ORM está relacionado con el acceso a la base de datos. Proporciona capas de integración para las populares API de mapeo relacional de objetos, incluyendo JDO, Hibernate e iBatis.
Spring web
El módulo web de Spring forma parte de la pila de desarrollo de aplicaciones web de Spring, que incluye Spring MVC.
Spring Dao
El soporte DAO (objeto de acceso a datos) en Spring es principalmente para estandarizar el trabajo de acceso a datos utilizando tecnologías como JDBC, Hibernate o JDO.
Spring Context
Este paquete se basa en el paquete de beans para agregar soporte para las fuentes de mensajes y para el patrón de diseño de Observer, y la capacidad de los objetos de la aplicación para obtener recursos utilizando una API consistente.
Spring Web MVC
Este es el módulo que proporciona las implementaciones MVC para las aplicaciones web.
Spring Core
El paquete Core es el componente más importante de Spring Framework.
Este componente proporciona las características de inyección de dependencia. El BeanFactory proporciona un patrón de fábrica que separa las dependencias, como la inicialización, la creación y el acceso de los objetos de su lógica de programa real.

Conclusión
Como podemos observar spring más que un framework es una suite completa que nos permite desarrollar cualquier tipo de proyecto web de manera sencilla e intuitiva y con altos estándares de calidad.
Estamos preparando un curso de spring boot para creación de API Rest y creación de aplicaciones web con thymeleaf e integración con aplicaciones frontend como Angular y React asi que atentos.