Difference between revisions of "Spring RabbitMQ cheat sheet"

From DarkWiki
Jump to: navigation, search
Line 1: Line 1:
 
===Sending to topics===
 
===Sending to topics===
  
On the ''Producer'' side (the one that raises the events) we create our TopicExchange, giving it a sensible name:
+
On the ''Producer'' side (the one that raises the events) we create our ''TopicExchange'', giving it a sensible name:
  
 
<source lang="java">
 
<source lang="java">
Line 38: Line 38:
 
</source>
 
</source>
  
You can then send EventMessage payloads with event ids such as "event.user.deleted".
+
You can then send ''EventMessage'' payloads with event ids such as "event.user.deleted".

Revision as of 16:24, 2 April 2020

Sending to topics

On the Producer side (the one that raises the events) we create our TopicExchange, giving it a sensible name:

import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class EventProducerConfig {

    @Bean("eventExchange")
    public TopicExchange eventExchange() {
        return new TopicExchange("eventExchange");
    }

}

It can then be used by our Producer to send event notifications to anyone who subscribes to the exchange:

@Component
public class EventProducer {
    private final RabbitTemplate rabbitTemplate;
    private final Exchange exchange;

    public EventProducer(RabbitTemplate rabbitTemplate,@Qualifier("eventExchange") Exchange exchange) {
        this.rabbitTemplate = rabbitTemplate;
        this.exchange = exchange;
    }

    public void signal(String eventId,EventMessage message) {
        rabbitTemplate.convertAndSend(exchange.getName(), eventId, message);
    }
}

You can then send EventMessage payloads with event ids such as "event.user.deleted".