Qué es Spring
Como definición podemos decir que Spring es un framework de código abierto
para la creación de aplicaciones empresariales Java, con soporte para Groovy y
Kotlin. Tiene una estructura modular y una gran flexibilidad para implementar
diferentes tipos de arquitectura según las necesidades de la aplicación.
Vamos a desgranar varios conceptos que aparecen en esa definición.
Qué es un framework
Spring se considera un framework, pero este es un concepto que en ocasiones
da pie a equívocos, así que vamos a ver qué es un framework.
Una librería es un conjunto de clases, de funciones y de utilidades que nos
permiten realizar algunos procesos. Un buen ejemplo de librería sería una librería
matemática, a la cual le podemos dar muchos datos y nos puede calcular, por
ejemplo, la desviación típica, o le podríamos plantear una integral y la podría
resolver.
A diferencia de una librería, un framework es:
Un conjunto de artefactos software, es decir, que puede incluir una librería,
de conceptos y de metodologías.
Nos proveé de un mecanismo genérico para resolver uno o más
problemas de un tipo determinado.
Es extensible a través de código escrito por los usuarios.
Ofrece facilidad para el desarrollo y despliegue.
Si tuviéramos que desarrollar una aplicación web, podríamos utilizar un
framework que nos facilite la tarea, que nos aporte soluciones a ese desarrollo.
Uno de ellos podría ser, por ejemplo, Spring MVC, que nos permitiría crear
fácilmente una aplicación web, ya que nos aislaría de determinados problemas,
como el hecho de crear servlet o registrar las peticiones, así nos podríamos
dedicar a lo que realmente importa.
Spring funciona sobre JVM
Si queréis saber más sobre Kotlin, entre nuestros artículos tenemos uno muy
bueno sobre este nuevo lenguaje de programación.
Spring funciona con Java, aunque también tiene soporte para otras tecnologías.
Inicialmente se diseñó para trabajar con Java SE y algunas especificaciones o
APIs de Java EE, pero a día de hoy trabaja con el JDK 8 y JDK 9. También
podemos trabajar con Groovy y tiene soporte para Kotlin.
Groovy es un lenguaje de programación que está implementado sobre la
plataforma Java, pero que en lugar de tener sintaxis parecida al mismo, la
tiene más orientada hacia otro lenguaje como Perl, Python o Ruby.
Es totalmente compatible con Java y desde código Groovy podemos acceder
a todas las APIs de Java.
Kotlines un lenguaje de programación surgido en los últimos años, creado por
la empresa JetBrains, y que es un lenguaje de programación de tipado
estático, que corre sobre la máquina virtual de Java y que también puede ser
compilado a JavaScript.
Tiene la ventaja de estar orientado a programación funcional y que es simple
y fácil de leer.
Spring tiene estructura modular
Spring ya no es solo un framework para la inyección de dependencias, sino que
tiene toda una familia de proyectos que abarcan muchos ámbitos: el ámbito de
desarrollo de aplicaciones web, aplicaciones web reactivas, seguridad, servicios
web, micro servicios, Android, etcétera.
Además, dentro de alguno de esos proyectos, podemos encontrar que tiene una
estructura modular, es decir, que está orientada a poder tener distintos módulos
que agrupan diversas funcionalidades, desde el contenedor de inversión de
control, la programación orientada a aspectos, el acceso a datos, etcétera.
Spring es flexible
Spring nos permitir desarrollar todo tipo de aplicaciones diferentes:
Aplicaciones de escritorio, aplicaciones de línea de comando, aplicaciones
web clásicas, web reactiva, micro servicios.
Aplicaciones que acceden a base de datos vía SQL directamente, a través
de algún tipo de ORM, bases de datos NoSQL.
Aplicaciones con esquemas de seguridad clásica donde almacenamos en
nuestra base de datos los elementos de seguridad, clave o credenciales,
pero también con otros sistemas como OAuth 2.0, JWT, LDAP.
Aplicaciones pequeñas, medianas y grandes, aplicaciones que tienden a
ser escalables, aplicaciones que vayamos a gestionar a través de
contenedores, aplicaciones que necesitemos desplegar en la nube.