您的位置:首页 > 编程语言 > Java开发

spring-boot 添加rabbitmq

2018-01-24 15:07 417 查看



添加maven依赖

[html] view
plain copy

 print?

<dependency>  

      <groupId>org.springframework.boot</groupId>  

      <artifactId>spring-boot-starter-amqp</artifactId>  

</dependency>  

简单实现


配置

在application.properties中增加如下配置

[plain] view
plain copy

 print?

spring.rabbitmq.addresses=127.0.0.1:5672  

spring.rabbitmq.username=guest  

spring.rabbitmq.password=guest  

spring.rabbitmq.publisher-confirms=true  

spring.rabbitmq.virtual-host=/  

rabbitmq端口说明:5672-amqp,25672-clustering,61613-stomp,1883-mqtt

消息生产者

[java] view
plain copy

 print?

package com.rabbitmq.send;  

  

import org.springframework.amqp.rabbit.core.RabbitTemplate;  

import org.springframework.beans.factory.annotation.Autowired;  

import org.springframework.stereotype.Component;  

  

@Component  

public class Sender {  

  

    @Autowired  

    priva
10677
te RabbitTemplate rabbitTemplate;  

  

    public void send(String msg) {  

        this.rabbitTemplate.convertAndSend("foo", msg);  

    }  

}  

消息监听者

[java] view
plain copy

 print?

package com.rabbitmq.listener;  

  

import org.slf4j.Logger;  

import org.slf4j.LoggerFactory;  

import org.springframework.amqp.core.Queue;  

import org.springframework.amqp.rabbit.annotation.RabbitHandler;  

import org.springframework.amqp.rabbit.annotation.RabbitListener;  

import org.springframework.context.annotation.Bean;  

import org.springframework.context.annotation.Configuration;  

import org.springframework.messaging.handler.annotation.Payload;  

  

@Configuration  

@RabbitListener(queues = "foo")  

public class Listener {  

  

    private static final Logger LOGGER = LoggerFactory.getLogger(Listener.class);  

  

    @Bean  

    public Queue fooQueue() {  

        return new Queue("foo");  

    }  

  

    @RabbitHandler 

    // @RabbitListener(queues = "foo")

    public void process(@Payload String foo) {  

        LOGGER.info("Listener: " + foo);  

    }  

}  

config也可以手动配置
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer;
import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistrar;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.converter.MappingJackson2MessageConverter;
import org.springframework.messaging.handler.annotation.support.DefaultMessageHandlerMethodFactory;

/**
* rabbitmq配置
*/
@Configuration
@EnableRabbit
public class RabbitMqConfig implements RabbitListenerConfigurer {

@Bean
public MappingJackson2MessageConverter jackson2Converter() {
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
return converter;
}

@Bean
public DefaultMessageHandlerMethodFactory myHandlerMethodFactory() {
DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory();
factory.setMessageConverter(jackson2Converter());
return factory;
}

@Override
public void configureRabbitListeners(RabbitListenerEndpointRegistrar registrar) {
registrar.setMessageHandlerMethodFactory(myHandlerMethodFactory());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: