继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕的地10843
关注TA
已关注
手记 1081
粉丝 200
获赞 962

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP