Spring Framework
¿Qué es Spring Framework? ¿Para qué se utiliza? ¿De qué se compone?
¿Qué es Spring Framework? Es un potente software de código abierto para desarrollar aplicaciones Java. La primera versión apareció en 2004 y desde entonces ha ido evolucionando y mejorando, creando nuevos componentes que facilitan la vida a los programadores.
Actualmente este Framework está compuesto por muchas librerías y cada una de ellas está destinada a una finalidad: Bases de datos, Seguridad, Servicios Web, etc. Así estas librerías se engloban en distintos módulos que nombro y resumo a continuación:
Módulos Spring Framework
Spring Data
Proporciona librerías necesarias para trabajar con bases de datos relacionales y no relacionales.
- Spring Data JDBC
- Spring Data JPA
- Spring Data LDAP
- Spring Data MongoDB
- Spring Data Redis
- Spring Data R2DBC
- Spring Data REST
- Spring Data for Apache Cassandra
- Spring Data for Apache Geode
- Spring Data for Apache Solr
- Spring Data for Pivotal GemFire
- Spring Data Couchbase
- Spring Data Elasticsearch
- Spring Data Envers
- Spring Data Neo4j
- Spring Data JDBC Extensions
- Spring for Apache Hadoop
Spring Web Services
Proporciona librerías para servicios web SOAP
Spring Security
Ofrece librerías que facilitan la seguridad en aplicaciones Spring, en relación a controles de acceso y autenticación.
- Spring Security Kerberos
- Spring Security OAuth
- Spring Security SAML
Spring Cloud
Facilita el despliegue de aplicaciones Spring en plataformas ubicadas en la nube.
- Spring Cloud Azure
- Spring Cloud Alibaba
- Spring Cloud for Amazon Web Services
- Spring Cloud Bus
- Spring Cloud Circuit Breaker
- Spring Cloud CLI
- Spring Cloud for Cloud Foundry
- Spring Cloud – Cloud Foundry Service Broker
- Spring Cloud Cluster
- Spring Cloud Commons
- Spring Cloud Config
- Spring Cloud Connectors
- Spring Cloud Consul
- Spring Cloud Contract
- Spring Cloud Function
- Spring Cloud Gateway
- Spring Cloud GCP
- Spring Cloud Kubernetes
- Spring Cloud Netflix
- Spring Cloud Open Service Broker
- Spring Cloud OpenFeign
- Spring Cloud Pipelines
- Spring Cloud Schema Registry
- Spring Cloud Security
- Spring Cloud Skipper
- Spring Cloud Sleuth
- Spring Cloud Stream
- Spring Cloud Stream App Starters
- Spring Cloud Stream Applications
- Spring Cloud Task
- Spring Cloud Task App Starters
- Spring Cloud Vault
- Spring Cloud Zookeeper
- Spring Cloud App Broker
Spring Cloud Data Flow
Permite el procesar datos en tiempo real (streaming) o en batch (tareas programadas), a través de microservicios en una plataforma cloud, como puede ser kubernetes.
Spring Batch
Se utiliza para automatizar tareas batch. Estas tareas normalmente s ejecutan en horaríos nocturnos y donde se manejan grandes cantidades de datos.
Spring GraphQL
Proporciona soporte para aplicaciones Spring creadas en GraphQL Java.
Spring Session
Facilita la administración de sesiones en aplicaciones web.
- Spring Session Core
- Spring Session Data Redis
- Spring Session JDBC
- Spring Session Hazelcast
- Spring Session MongoDB
- Spring Session for Apache Geode
Spring Integration
Plataforma de integración que ayuda a integrar aplicaciones independientes.
Spring HATEOAS
Las siglas HATEOAS significa Hypermedia as the Engine of Application State. Mejora la usabilidad en aplicaciones API REST.
Spring REST Docs
Ayuda a generar documentación de nuestras APIS de forma actualizada.
Spring AMQP
Proporciona librerías que facilitan la administración de recursos AMQP (Advanced Message Queuing Protocol) al mismo tiempo que promueven el uso de la inyección de dependencias y la configuración declarativa.
Spring CredHub
Proporciona soporte del lado del cliente para almacenar, recuperar y eliminar credenciales de un servidor.
Spring Flo
Librería Javascript que ofrece un herramienta visual en HTML5 para construir pipelines y gráficos.
Spring for Apache Kafka
Permite seguir el modelo Spring para el desarrollo de soluciones de mensajería basadas en Kafka.
Spring LDAP
Biblioteca que simplifica la programación LDAP en Java, construida sobre los mismos principios que Spring Jdbc.
Spring Roo
Herramienta de desarrollo rápido de aplicaciones de próxima generación para desarrolladores de Java. Con Roo puede crear fácilmente aplicaciones Java completas en minutos.
Spring Shell
Herramienta para desarrollar programas en línea de comandos.
Spring Statemachine
Marco para que los desarrolladores de aplicaciones usen conceptos de máquina de estado con aplicaciones Spring.
Spring Vault
Permite a las aplicaciones acceder de forma transparente a los secretos almacenados en las instancias de Google Vault. Las contraseñas, las claves de API y los datos confidenciales son considerados secretos.
Spring Web Flow
Se basa en Spring MVC y permite implementar los «flujos» de una aplicación web. Un flujo encapsula una secuencia de pasos que guían al usuario a través de la ejecución de alguna tarea empresarial.
Uso de Spring Boot
Para la utilización de estos módulos es muy recomendable la utilización de Spring Boot. Puede conocer más en el tutorial Crear aplicación web con Spring Boot REST JPA y MySQL.