Diferencia entre revisiones de «Spring Integration»
 (→Definición de canales de entrada y salida)  | 
				 (→Definición de canales de entrada y salida)  | 
				||
| Línea 8: | Línea 8: | ||
<integration:channel id="QueueChanneIn"/>  | <integration:channel id="QueueChanneIn"/>  | ||
| − | <jms:message-driven-channel-adapter connection-factory="PruebaQueueConnectionFactory" destination-name="jms/Queue-in" destination-resolver="jmsDestinationResolver" channel="QueueChanneIn" acknowledge="auto" concurrent-consumers="1"/>  | + | <jms:message-driven-channel-adapter connection-factory="PruebaQueueConnectionFactory"    | 
| + | destination-name="jms/Queue-in" destination-resolver="jmsDestinationResolver"    | ||
| + | channel="QueueChanneIn" acknowledge="auto" concurrent-consumers="1"/>  | ||
<integration:channel id="QueueChanneOut1"/>  | <integration:channel id="QueueChanneOut1"/>  | ||
Revisión del 18:20 5 nov 2009
Spring Framework proporciona integración para JMS, remoting, scheduling, email y JMX. Spring Integration intenta crear una capa de abstracción para los patrones de integración empresarial, con la filosofía de separar los componentes de negocio del sistema de mensajeria utilizado.
Contenido
- 1 Algunos ejemplos de como utilizar Spring Integration con mensajería.
- 1.1 Definición de canales de entrada y salida
 - 1.2 Consumir un mensaje de una cola y mostrarlo por consola. (stdout-channel-adapter)
 - 1.3 Consumir un mensaje de una cola y enviarlo a una lista fija de colas destino. (recipient-list-router).
 - 1.4 Consumir un mensaje de una cola y enviarlo a una cola especifica dependiendo del valor de un atributo del header del mensaje. (header-value-router).
 - 1.5 Consumir un mensaje de una cola y enviarlo a una lista de colas de salida utilizando un pojo para determinar a que colas enviarlo.(router).
 
 - 2 Ver también
 
Algunos ejemplos de como utilizar Spring Integration con mensajería.
Definición de canales de entrada y salida
<integration:channel id="QueueChanneIn"/>
<jms:message-driven-channel-adapter connection-factory="PruebaQueueConnectionFactory" destination-name="jms/Queue-in" destination-resolver="jmsDestinationResolver" channel="QueueChanneIn" acknowledge="auto" concurrent-consumers="1"/>
<integration:channel id="QueueChanneOut1"/> <jms:outbound-channel-adapter jms-template="jmsQueueTemplateOut1" channel="QueueChanneOut1"/>
<integration:channel id="QueueChanneOut2"/> <jms:outbound-channel-adapter jms-template="jmsQueueTemplateOut2" channel="QueueChanneOut2"/>
Consumir un mensaje de una cola y mostrarlo por consola. (stdout-channel-adapter)
<stream:stdout-channel-adapter id="stdout" append-newline="true"/>
<integration:bridge id="echo" input-channel="QueueChanneIn" output-channel="stdout"/>
Consumir un mensaje de una cola y enviarlo a una lista fija de colas destino. (recipient-list-router).
<integration:recipient-list-router input-channel="QueueChanneIn" apply-sequence="true">
           <integration:recipient channel="QueueChanneOut1"/>
           <integration:recipient channel="QueueChanneOut2"/>
</integration:recipient-list-router>
Consumir un mensaje de una cola y enviarlo a una cola especifica dependiendo del valor de un atributo del header del mensaje. (header-value-router).
<integration:header-value-router input-channel="QueueChanneIn" header-name="springintegration_jms_type">
       <integration:mapping value="Out1" channel="QueueChanneOut1"/>
       <integration:mapping value="Out2" channel="QueueChanneOut2"/>
</integration:header-value-router>
Consumir un mensaje de una cola y enviarlo a una lista de colas de salida utilizando un pojo para determinar a que colas enviarlo.(router).
<integration:router input-channel="QueueChanneIn" ref="multiDestino"/>
<bean id="multiDestino" class="com.dosideas.springintegration.MultiDestino"/>
public class MultiDestino {
   @Router
   public List<String> resolverChannel(GenericMessage message) throws JMSException {
       List<String> list = new ArrayList<String>();
       if(message.getHeaders().get("springintegration_jms_type").equals("Out1")) {
           System.out.println(message.getHeaders().get("springintegration_jms_type"));
           list.add("QueueChanneOut1");
           
       }
       else if(message.getHeaders().get("springintegration_jms_type").equals("Out2")) {
           System.out.println(message.getHeaders().get("springintegration_jms_type"));
           list.add("QueueChanneOut2");
       }
       else if(message.getHeaders().get("springintegration_jms_type").equals("Multi")) {
           System.out.println(message.getHeaders().get("springintegration_jms_type"));
           list.add("QueueChanneOut1");
           list.add("QueueChanneOut2");
       }
return list; }
}