RabbitMq、ActiveMq、kafka等都是中间件,用于监听消息,然后去异步执行程序。
RabbitMq的配置
package com.rabbitmq.rabbitmq.Config;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitMqConfig implements CommandLineRunner {
@Autowired
private RabbitTemplate rabbitTemplate;
// 声明要发布的消息队列的名称
@Bean
public Queue wiselyQueue() {
return new Queue("my-queue");
}
// 用于设置发送的数据
@Override
public void run(String... args) throws Exception {
rabbitTemplate.convertAndSend("my-queue", "RabbitMq测试");
}
}
平常开发中有可能需要实现在项目启动后执行的功能,SpringBoot提供的一种简单的实现方案就是添加一个model并实现CommandLineRunner接口,实现功能的代码放在实现的run方法中
端口的监听
package com.rabbitmq.rabbitmq.Wisely;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.context.annotation.Configuration;
@Component
public class Receiver {
// 用于监听当前消息队列中的消息,如果有消息,则会接收到
@RabbitListener(queues = "my-queue")
public void receiverMessage(String message) {
System.out.println("收到mq的消息:" + message);
}
}
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>