package es.uv.garcosda.config; import org.springframework.amqp.core.AmqpAdmin; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Queue; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class RabbitMQConfig { @Value("${rabbitmq.queue.name.user}") private String queueUser; @Value("${rabbitmq.queue.name.recover}") private String queueRecover; @Value("${rabbitmq.exchange.name}") private String exchange; @Value("${rabbitmq.routing.key.user}") private String routingKeyUser; @Value("${rabbitmq.routing.key.recover}") private String routingKeyRecover; @SuppressWarnings("unused") @Autowired private AmqpAdmin amqpAdmin; @Bean public void Configure() { Queue q = new Queue(this.queueUser, true, false, false); Queue q2 = new Queue(this.queueRecover, true, false, false); amqpAdmin.declareQueue(q); amqpAdmin.declareQueue(q2); DirectExchange e = new DirectExchange(this.exchange); amqpAdmin.declareExchange(e); amqpAdmin.declareBinding(BindingBuilder .bind(q) .to(e) .with(routingKeyUser)); amqpAdmin.declareBinding(BindingBuilder .bind(q2) .to(e) .with(routingKeyRecover)); } @Bean public Jackson2JsonMessageConverter converter() { return new Jackson2JsonMessageConverter(); } }