为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Boot应用中整合消息中间件RabbitMQ

标签:
SpringBoot

webp

dota2.jpg

我们通过在Spring Boot应用中整合RabbitMQ,实现一个简单的发送、接收消息的例子来对RabbitMQ有一个直观的感受和理解。

  • 新建一个Spring Boot工程,命名为 rabbitmq-hello

  • 在 pom.xml 文件中引入如下依赖内容

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId></dependency>
  • application.properties文件中配置RabbitMQ的相关信息

spring.rabbitmq.addresses=10.110.200.29:5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
  • 创建消息生产者 Sender。通过注入 AmqpTemplate 接口的实例来实现消息的发送,AmqpTemplate 接口定义了一套针对 AMQP 协议的基础操作。在 Spring Boot 中会根据配置来注入其具体实现。在该生产者中,我们会产生一个字符串,并发送到名为 hello 的队列中

@Componentpublic class Sender {    @Autowired
    private AmqpTemplate rabbitTemplate;    public void send() {
        String context = "hello " + new Date();
        System.out.println("Sender : " + context);
        rabbitTemplate.convertAndSend("hello", context);
    }
}
  • 创建消息消费者 Receiver 。通过 @RabbitListener 注解定义该类对 hello 队列的监听,并用 @RabbitHandler 注解来指定对消息的处理方法

@Component@RabbitListener(queues = "hello")public class Receiver {    // 这里 process 方法名 和 hello 参数名 可以任意。
    @RabbitHandler
    public void process(String hello) {
        System.out.println("Receiver : " + hello);
    }
}
  • 创建配置类 RabbitConfig ,用来配置队列、交换器、路由等高级信息。这里以入门为主,以最小化配置来定义,完成一个基本的生产消费过程

@Configurationpublic class RabbitConfig {    @Bean
    public Queue helloQueue() {        return new Queue("hello");
    }
}
  • 创建应用主类

@SpringBootApplicationpublic class RabbitMQApplication {    public static void main(String[] args) {
        SpringApplication.run(RabbitMQApplication.class, args);
    }
}
  • 创建单元测试类

@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublic class RabbitMQApplicationTests {    @Autowired
    private Sender sender;    @Test
    public void contextLoads() {
        sender.send();
    }
}
  • 运行单元测试类,可以在控制台看到 sender 消息被发送到了 hello 队列中。

  • 切换到主类控制台,我们看到消费者对 hello 队列的消息进行了监听,并打印了接收到的消息信息。



作者:angeChen
链接:https://www.jianshu.com/p/f42789ebb6c4


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消