Difference between revisions of "Spring RabbitMQ cheat sheet"
From DarkWiki
(Created page with "===Sending to topics=== On the ''Producer'' side (the one that raises the events) we create our TopicExchange, giving it a sensible name: <source lang="java"> import org.spr...") |
|||
| Line 18: | Line 18: | ||
} | } | ||
</source> | </source> | ||
| + | |||
| + | It can then be used by our ''Producer'' to send event notifications to anyone who subscribes to the exchange: | ||
| + | |||
| + | <source lang="java"> | ||
| + | @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); | ||
| + | } | ||
| + | } | ||
| + | </source> | ||
| + | |||
| + | 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".