DEV Community

loizenai
loizenai

Posted on

Spring Jms ActiveMQ – How to create a SpringBoot ActiveMQ Response Management application by @SendTo

https://grokonez.com/spring-framework/spring-jms/activemq-create-springboot-activemq-response-management-application-sendto-annotation

Spring Jms ActiveMQ – How to create a SpringBoot ActiveMQ Response Management application by @SendTo annotation

In the past posts, we had learned how to consume/produce ActiveMq JMS messages. Today, JavaSampleApproach will show you way to create a SpringBoot ActiveMQ Response Management application by @SendTo annotation.

Related posts:

I. Technologies

– Java 8
– Maven 3.6.1
– Spring Tool Suite: Version 3.8.4.RELEASE
– Spring Boot: 1.5.4.RELEASE
– Apache ActiveMQ 5.14.0

II. ActiveMQ Response Management

With the Spring JMS improvements (from 4.1), we can used @SendTo annotation to define the default next destination with @JmsListener:

SpringBoot ActiveMQ Response Management application - sendto aannotation - architecture


@JmsListener(destination = "${jsa.activemq.queue.listen}", containerFactory="jsaFactory")
@SendTo("${jsa.activemq.queue.sendto}")
public Product processOrder(Product product) {
    // process a newProduct
    return newProduct;
}

For additional headers, you could return a Message object instead:


@JmsListener(destination = "${jsa.activemq.queue.listen}", containerFactory="jsaFactory")
@SendTo("${jsa.activemq.queue.sendto}")
public Message  receive(Product product, @Header("company") String companyName){
    
    ...
    
    Message  mesage = MessageBuilder
            .withPayload(product)
            .setHeader("type", product.getType())
            .build();
    
    return mesage;  
}

When having several @JmsListener methods, we can also place the @SendTo annotation at the class level to share a default reply destination.

III. Practice

In the tutorial, we create 2 SpringBoot projects {SpringActiveMqProducerConsumer, SpringActiveMqSendTo}:

SpringBoot ActiveMQ Response Management application - sendto aannotation - project structure

MORE AT:

https://grokonez.com/spring-framework/spring-jms/activemq-create-springboot-activemq-response-management-application-sendto-annotation

Spring Jms ActiveMQ – How to create a SpringBoot ActiveMQ Response Management application by @SendTo annotation

Top comments (0)