SpringBoot--整合RabbitMq

来源:互联网 发布:网络加盟代理 编辑:程序博客网 时间:2024/05/29 07:51

1 Spring Boot对RabbitMQ的使用做了自动配置,更加的简化了我们的使用。
添加依赖:

<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-amqp</artifactId>        </dependency>

在application.properties文件中配置RabbitMQ的连接信息:

spring.rabbitmq.host=127.0.0.1spring.rabbitmq.port=5672spring.rabbitmq.username=tangtangspring.rabbitmq.password=123123spring.rabbitmq.virtual-host=/tang

会自动创建连接org.springframework.amqp.rabbit.connection.ConnectionFactory对象。
注入到想要的位置。

/** * RabbitMq配置中心,由SpringBoot提供的相关包自动整合 *  * @author Tang 2017年11月19日 */@Configuration@PropertySource(value = "classpath:rabbitmq.properties")public class RabbitMqConfig {    private final String QUEUE_NAME = "RABBITMQ-TEXT-QUEUE";    /**     * 在全局配置中按要求配置,会自动将连接注入到这里     */    @Autowired    private ConnectionFactory connectionFactory;    // 管理    @Bean    public RabbitAdmin rabbitAdmin() {        return new RabbitAdmin(connectionFactory);    }    // 声明队列    @Bean    public Queue rabbitTextQueue() {        // 默认就是自动声明的        return new Queue(QUEUE_NAME, true);    }    /**     * 配置监听连接     */    @Bean(name = "rabbitListenerContainerFactory")    public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(            ConnectionFactory connectionFactory, RabbitProperties config) {        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();        factory.setConnectionFactory(connectionFactory);        RabbitProperties.Listener listenerConfig = config.getListener();        factory.setAutoStartup(listenerConfig.isAutoStartup());        if (listenerConfig.getAcknowledgeMode() != null) {            factory.setAcknowledgeMode(listenerConfig.getAcknowledgeMode());        }        if (listenerConfig.getConcurrency() != null) {            factory.setConcurrentConsumers(listenerConfig.getConcurrency());        }        if (listenerConfig.getMaxConcurrency() != null) {            factory.setMaxConcurrentConsumers(listenerConfig                    .getMaxConcurrency());        }        if (listenerConfig.getPrefetch() != null) {            factory.setPrefetchCount(listenerConfig.getPrefetch());        }        if (listenerConfig.getTransactionSize() != null) {            factory.setTxSize(listenerConfig.getTransactionSize());        }        return factory;    }    /**     * 具体监听队列及使用配置     *      * @param message     * @throws Exception     */    @RabbitListener(queues = QUEUE_NAME, containerFactory = "rabbitListenerContainerFactory")    public void handleMessage(String message) throws Exception {        // 具体处理    }}
原创粉丝点击