如何使用弹簧靴在兔子mq中创建动态队列?
我需要一些帮助。
我正在开发一个弹簧启动应用程序,我想将消息发布到rabbitMQ。我想将其发送到在消息本身中命名的队列。这样我想动态创建队列。我只找到使用“静态”队列的示例。
我已经重新搜索了一些东西,但没有找到任何东西。我是RabbitMQ的新手,学习了基本概念。我对春天也相当陌生。
RabbotMQ Config
@Configuration
public class RabbitMQConfig {
@Value("amq.direct")
String exchange;
@Value("queue-name") // Don't want to do this
String queueName;
@Value("routing-key") // Or this
String routingkey;
@Bean
Queue queue() {
return new Queue(queueName, true);
}
@Bean
DirectExchange exchange() {
return new DirectExchange(exchange);
}
@Bean
Binding binding(Queue queue, DirectExchange exchange) {
return BindingBuilder.bind(queue).to(exchange).with(routingkey);
}
@Bean
public MessageConverter jsonMessageConverter() {
return new Jackson2JsonMessageConverter();
}
@Bean
public AmqpTemplate template(ConnectionFactory connectionFactory) {
final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
rabbitTemplate.setMessageConverter(jsonMessageConverter());
return rabbitTemplate;
}
}
消息发送
@Service
public class RabbitMQSender {
@Autowired
private AmqpTemplate template;
@Value("amq.direct")
private String exchange;
public void send(MessageDTO message) {
template.convertAndSend(exchange, message);
}
}