Difference between revisions of "Spring RabbitMQ cheat sheet"
From DarkWiki
| 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".