Diferencia entre revisiones de «Spring Integration»

De Dos Ideas.
Saltar a: navegación, buscar
(Ver también)
Línea 1: Línea 1:
 +
[[Spring Framework]] proporciona integración para [[JMS]], remoting, scheduling, email y [[JMX]]. [[Spring Integration]] intenta crear una capa de abstracción para los [http://www.eaipatterns.com/ patrones de integración empresarial], con la filosofía de separar los componentes de negocio del sistema de mensajeria utilizado.
  
 +
Estos son algunos ejemplos de como utilizar Spring Integration con mensajería.
 +
 +
====Consumir un mensaje de una cola y mostrarlo por consola. (stdout-channel-adapter)====
 +
<code xml>
 +
<stream:stdout-channel-adapter id="stdout" append-newline="true"/>
 +
<integration:bridge id="echo" input-channel="QueueChanneIn" output-channel="stdout"/>
 +
</code>
 +
 +
====Consumir un mensaje de una cola y enviarlo a una lista fija de colas destino. (recipient-list-router).====
 +
 +
<code xml>
 +
<integration:recipient-list-router input-channel="QueueChanneIn" apply-sequence="true">
 +
            <integration:recipient channel="QueueChanneOut1"/>
 +
            <integration:recipient channel="QueueChanneOut2"/>
 +
</integration:recipient-list-router>
 +
</code>
 +
 +
====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).====
 +
 +
<code xml>
 +
<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>
 +
</code>
 +
 +
====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).====
 +
 +
<code xml>
 +
<integration:router input-channel="QueueChanneIn" ref="multiDestino"/>
 +
<bean id="multiDestino" class="com.dosideas.springintegration.MultiDestino"/>
 +
</code>
 +
 +
<code java>
 +
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;
 +
    }
 +
}
 +
</code>
  
  
 
==Ver también==
 
==Ver también==
 
==Más información==
 
 
* [http://static.springsource.org/spring-integration/reference/htmlsingle/spring-integration-reference.html#bridge Spring Integration]
 
* [http://static.springsource.org/spring-integration/reference/htmlsingle/spring-integration-reference.html#bridge Spring Integration]

Revisión del 13:43 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.

Estos son algunos ejemplos de como utilizar Spring Integration con mensajería.

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;
   }

}


Ver también