Springboot中使用RabbitMQ

RabbitAdmin主要用于对队列进行管理,用于创建,绑定,删除队列与交换机,发送消息等。

1.首先添加配置

spring.rabbitmq.host=localhost 
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin 
spring.rabbitmq.password=secret

2.创建RabbitMq配置类,配置连接工厂和对象

@Data
@Configuration
@ConditionalOnProperty("spring.rabbitmq.host")
public class RabbitConfig{
    @Value("${spring.rabbitmq.host}")
    private String host;

    @Value("${spring.rabbitmq.port}")
    private Integer port;

    @Value("${spring.rabbitmq.username}")
    private String username;

    @Value("${spring.rabbitmq.password}")
    private String password;
    
    @Bean
    public ConnectionFactory connectionFactory {
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
        connectionFactory.setHost(host);
        connectionFactory.setPort(port);
        connectionFactory.setUsername(username);
        connectionFactory.setPassword(password);
        return CachingConnectionFactory;
    }
    //rabbitAdmin主要用于在Java代码中对队列进行管理,用于创建、绑定、删除队列与交换机,发送消息等
    @Bean
    public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) {
    return new RabbitAdmin(connectionFactory);
    }
}

3.配置消息队列,交换机等信息

@Configuration
public class RabbitSenderConfig {

    @Value("${PUSH_POINT_QUEUE_NAME}")
    private String QUEUE_NAME;

    @Value("${PUSH_POINT_EXCHANGE_NAME}")
    private String EXCHANGE_NAME;

    @Value("${PUSH_POINT_ROUTINGKEY}")
    private String ROUTINGKEY;
    
    @Bean
    public Queue pushPointQueue(){
        return new Queue(QUEUE_NAME,true);
    }
    
    @Bean
    DirectExchange directExchange() {
        return new DirectExchange(EXCHANGE_NAME);
    }
    @Bean
    public Binding bindingExchangeMessage(Queue pushPointQueue, DirectExchange directExchange) {
        return BindingBuilder.bind(pushPointQueue).to(directExchange).with(ROUTINGKEY);
    }

4.发送消息

rabbitMessagingTemplate.convertAndSend(EXCHANGE_NAME, ROUTINGKEY,message);

5.监听器

@Component
@Slf4j
@RabbitListener(queues = "${PUSH_POINT_QUEUE_NAME}",containerFactory = "queneRabbitListenerContainerFactory")
public class PushPointRabbitReceiver {

   
    @RabbitHandler
    public void process(String content) {
        /*处理消息*/
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值