Enterprise Avanzato

Sostituisci i JMS Message-Driven Bean con MicroProfile Reactive Messaging per un'elaborazione degli eventi più semplice.

✕ Java EE
@MessageDriven(activationConfig = {
    @ActivationConfigProperty(
        propertyName = "destinationType",
        propertyValue = "jakarta.jms.Queue"),
    @ActivationConfigProperty(
        propertyName = "destination",
        propertyValue = "java:/jms/OrderQueue")
})
public class OrderMDB implements MessageListener {
    @Override
    public void onMessage(Message message) {
        TextMessage txt = (TextMessage) message;
        processOrder(txt.getText());
    }
}
✓ MicroProfile 4+
@ApplicationScoped
public class OrderProcessor {
    @Incoming("orders")
    public void process(Order order) {
        // automatically deserialized from
        // the "orders" channel
        fulfillOrder(order);
    }
}
Vedi un problema con questo codice? Faccelo sapere.
🪶

Codice minimale

Un singolo metodo @Incoming sostituisce la classe MDB, l'interfaccia MessageListener e la configurazione di attivazione.

🔌

Broker-agnostico

Cambia i connector Kafka, AMQP o JMS tramite configurazione senza modificare il codice dell'applicazione.

☁️

Adatto al cloud-native

La backpressure degli stream reattivi e il runtime leggero lo rendono ideale per i deployment containerizzati.

Approccio Vecchio
Message-Driven Bean
Approccio Moderno
Reactive Messaging
Dal JDK
11
Difficoltà
Avanzato
Message-Driven Bean vs Reactive Messaging
Disponibile

Disponibile da MicroProfile 4.0 / SmallRye Reactive Messaging

I Message-Driven Bean richiedono l'implementazione di MessageListener, la configurazione delle proprietà di attivazione e la deserializzazione manuale dei messaggi JMS. MicroProfile Reactive Messaging usa una semplice annotazione @Incoming su un metodo che riceve oggetti tipizzati direttamente. La configurazione del canale è esternalizzata, rendendo il codice broker-agnostico e molto più facile da testare.

Condividi 𝕏 🦋 in