|
|
|
@ -5,6 +5,7 @@ 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.rabbit.connection.CachingConnectionFactory; |
|
|
|
|
import org.springframework.amqp.rabbit.connection.ConnectionFactory; |
|
|
|
|
import org.springframework.amqp.rabbit.core.RabbitTemplate; |
|
|
|
|
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; |
|
|
|
@ -15,59 +16,19 @@ import org.springframework.core.env.Environment;
|
|
|
|
|
@Configuration |
|
|
|
|
@Slf4j |
|
|
|
|
public class MessageConfig { |
|
|
|
|
|
|
|
|
|
private final Environment env; |
|
|
|
|
|
|
|
|
|
public MessageConfig(Environment env) { |
|
|
|
|
this.env = env; |
|
|
|
|
@Bean |
|
|
|
|
public CachingConnectionFactory cachingConnectionFactory() { |
|
|
|
|
return new CachingConnectionFactory(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// @Bean
|
|
|
|
|
// public CachingConnectionFactory cachingConnectionFactory() {
|
|
|
|
|
// return new CachingConnectionFactory();
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public Jackson2JsonMessageConverter converter() { |
|
|
|
|
return new Jackson2JsonMessageConverter(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public DirectExchange appDroneExchange() { |
|
|
|
|
return new DirectExchange(env.getProperty("message.app.exchange-name")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public DirectExchange websocketDroneExchange() { |
|
|
|
|
return new DirectExchange(env.getProperty("message.websocket.exchange-name")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public Queue appDroneQueue() { |
|
|
|
|
return new Queue(env.getProperty("message.app.queue-name"), false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public Queue websocketDroneQueue() { |
|
|
|
|
return new Queue(env.getProperty("message.websocket.queue-name"), false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public Binding appDroneBinding(Queue appDroneQueue, DirectExchange appDroneExchange) { |
|
|
|
|
return BindingBuilder.bind(appDroneQueue) |
|
|
|
|
.to(appDroneExchange) |
|
|
|
|
.with(env.getProperty("message.app.routing-key")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public Binding websocketDroneBinding(Queue websocketDroneQueue, DirectExchange websocketDroneExchange) { |
|
|
|
|
return BindingBuilder.bind(websocketDroneQueue) |
|
|
|
|
.to(websocketDroneExchange) |
|
|
|
|
.with(env.getProperty("message.websocket.routing-key")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, Jackson2JsonMessageConverter converter) { |
|
|
|
|
public RabbitTemplate rabbitTemplate(CachingConnectionFactory connectionFactory, Jackson2JsonMessageConverter converter) { |
|
|
|
|
RabbitTemplate rabbitTemplate = new RabbitTemplate(); |
|
|
|
|
|
|
|
|
|
rabbitTemplate.setConnectionFactory(connectionFactory); |
|
|
|
|