Enterprise Avanzado

Reemplaza los Message-Driven Beans de JMS por MicroProfile Reactive Messaging para un procesamiento de eventos más simple.

✕ 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);
    }
}
¿Ves un problema con este código? Cuéntanos.
🪶

Código mínimo

Un solo método @Incoming reemplaza la clase MDB, la interfaz MessageListener y la configuración de activación.

🔌

Agnóstico al broker

Intercambia conectores de Kafka, AMQP o JMS mediante configuración sin cambiar el código de la aplicación.

☁️

Apto para la nube

La contrapresión de streams reactivos y el runtime ligero lo hacen ideal para despliegues en contenedores.

Enfoque Antiguo
Message-Driven Bean
Enfoque Moderno
Reactive Messaging
Desde JDK
11
Dificultad
Avanzado
Message-Driven Bean vs Reactive Messaging
Disponible

Disponible desde MicroProfile 4.0 / SmallRye Reactive Messaging

Los Message-Driven Beans requieren implementar MessageListener, configurar propiedades de activación y deserializar manualmente los mensajes JMS. MicroProfile Reactive Messaging usa una simple anotación @Incoming en un método que recibe objetos tipados directamente. La configuración del canal se externaliza, haciendo el código agnóstico al broker y mucho más fácil de probar.

Compartir 𝕏 🦋 in