Spring Integration Message Channel

L’interfaccia che descrive i Message Channel è molto semplice ed i suoi metodi auto esplicativi.

Vedremo poi le diverse implementazioni fornite da Spring Integration che permettono ad esempio la creazioni di canali basati su code o punto a punto o con sottoscrittori, ecc.

Ecco l’interfaccia Message Channel:


public interface MessageChannel {
    boolean send(Message message);
    boolean send(Message message, long timeout);
}

I metodi restituiscono false in caso di Time Out scaduto o di interruzione.

Esistono poi alcune interfacce supplementari che ereditano quella mostrata sopra. Questo perchè i canali possono bufferizzare o no i messaggi (Pollable o Subscribable behaviour).

Ecco la definizione dell’interfaccia PollableChannel:


public interface PollableChannel extends MessageChannel {
    Message<?> receive();
    Message<?> receive(long timeout);
}

L’interfaccia SubscribableChannel è invece implementata dai canali che inviano messaggi direttamente ai loro Message Handlers sottoscritti, dunque non prevede metodi di ricezione  con i quali effettuare il polling, ma definisce piuttosto delle funzioni necessarie alla gestione dei subscribers:


public interface SubscribableChannel extends MessageChannel {
    boolean subscribe(MessageHandler handler);
    boolean unsubscribe(MessageHandler handler);
}

Ecco le implementazioni dei Channel più comuni.

Leave a Reply