package com.xcong.excoin.configurations;
|
|
import com.xcong.excoin.configurations.properties.CustomRabbitProperties;
|
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.ConnectionFactory;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Scope;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @author wzy
|
* @date 2020-05-25
|
**/
|
@Configuration
|
public class RabbitMqConfig {
|
|
public static final String EXCHANGE_ONE = "excoin-exchange-one";
|
|
public static final String QUEUE_TEST = "test-queue";
|
|
public static final String ROUTING_KEY_TEST = "test-routingKey";
|
|
@Resource
|
private ConnectionFactory connectionFactory;
|
|
// @Bean
|
// public ConnectionFactory connectionFactory() {
|
// CachingConnectionFactory connectionFactory = new CachingConnectionFactory(customRabbitProperties.getHost(), customRabbitProperties.getPort());
|
// connectionFactory.setUsername(customRabbitProperties.getUsername());
|
// connectionFactory.setPassword(customRabbitProperties.getPassword());
|
// connectionFactory.setPublisherConfirmType(CachingConnectionFactory.ConfirmType.CORRELATED);
|
// return connectionFactory;
|
// }
|
|
@Bean
|
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
public RabbitTemplate rabbitTemplate() {
|
return new RabbitTemplate(connectionFactory);
|
}
|
|
@Bean
|
public DirectExchange defaultExchange() {
|
return new DirectExchange(EXCHANGE_ONE);
|
}
|
|
@Bean
|
public Queue testQueue() {
|
return new Queue(QUEUE_TEST, true);
|
}
|
|
@Bean
|
public Binding binding() {
|
return BindingBuilder.bind(testQueue()).to(defaultExchange()).with(ROUTING_KEY_TEST);
|
}
|
|
}
|