Spring Integration brinda una extensión a Spring para facilitar el desarrollo de soluciones de integración soportando los Patrones de Integración Corporativos (EAI).
Puede verse como un ESB ligero montado sobre el contenedor de Spring y por tanto independiente del AppServer
Soporta estos casos de uso:
- Transformar mensajes: permite cambiar el contenido o cabeceras de un mensaje antes de pasarlo a otro endpoint
- Rutear mensajes: permite establecer lógica de ruteado (pj pasar de un input channel a varios output channels)
- Filtrar mensajes: datos que no deben procesarse
- Adaptar mensajes entre sistemas cambiando el mecanismo de comunicación
- Split mensajes cuando el mensaje es demasiado grande
- Agregar mensajes: generar un mensaje agregado en base a varios
En cuanto a Patrones de Integración soporta:
· Patrones de Interacción: permite a los despachar mensajes o recibirlos
· Patrones de mediación: Transforman mensajes al vuelo
· Patrones compuestos: combinaciones entre patrones de interacción y mediación
Los principales conceptos de Spring Integration son (ya los contamos en este post)
· Message:contenedor de datos (Payload) y cabecera (Header) que provee propiedades de mensajería (id, id de correlación, expiración, url de retorno,…).
· Channel: representa un canal lógico por donde se reciben o se envían mensajes.
Provee métodos para enviar (send) y recibir (receive)
Hay canales de tipo Punto a punto y Publish-Suscribe:
· Channel Adapter representa el adaptador entre el canal lógico (MessageChannel) y una implementación física de ese canal.
Hay adaptadores para ficheros, UDP, TCP, HTTP, RSS/ATOM, Web Services, Mail, JMS, JDBC, RMI, JMX, Mongo, Twitter,…
Por ejemplo:
O:
- Message Endpoint Conecta un Handler a un MessageChannel de entrada o/y a uno de salida.
Hay diferentes tipos como:
- Channel Adapter
- Service Activator: invoca un servicio en base a un mensaje de entrada y envía un mensaje de salida con el resultado
- Gateway
- Routers, Splitters, Agregadores, Transformadores
Soporte Herramientas
Spring Integration está soportado por STS (Spring Tool Suite), que permite modelar visualmente los flujos:
Esquema de uso:
Otro ejemplo:
En STS este modelado
Corresponde con:
Algo más complejo:
Algunos componentes:
jdbcInbound:
wsOutbound:
Filter:
Splitter:
Transformer:
![]()
![]()
























Deja un comentario