Skip to content

Commit

Permalink
Initial commit of RabbitMQ, create sender and listener
Browse files Browse the repository at this point in the history
  • Loading branch information
Maxim471 committed Feb 17, 2023
1 parent 6875e7f commit 6e06a5a
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package by.rom.customerservice.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@Slf4j
public class MessageConfig {

public static final String QUEUE = "notification_queue";
public static final String EXCHANGE = "micro_exchange";
public static final String ROUTING_KEY = "routing_key";

@Bean
public Queue queue(){
return new Queue(QUEUE);
}

@Bean
public TopicExchange exchange(){
return new TopicExchange(EXCHANGE);
}

@Bean
public Binding binding(Queue queue, TopicExchange topicExchange){
return BindingBuilder.bind(queue).to(topicExchange).with(ROUTING_KEY);
}

@Bean
public MessageConverter converter(){
return new Jackson2JsonMessageConverter();
}

@Bean
public AmqpTemplate template(ConnectionFactory connectionFactory) {
RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
rabbitTemplate.setMessageConverter(converter());
return rabbitTemplate;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package by.rom.notificationservice.config;

import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MessageConverter {

@Bean
public org.springframework.amqp.support.converter.MessageConverter converter(){
return new Jackson2JsonMessageConverter();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
import by.rom.notificationservice.dto.NotificationDto;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
@Slf4j
public class NotificationService {

@RabbitListener(queues = "notification_queue")
public void email(NotificationDto notificationDto){
log.info("sending email {}", notificationDto);
}
Expand Down

0 comments on commit 6e06a5a

Please sign in to comment.