简单工作队类的实现配置步骤(5步)
- 引入AMQP的依赖
- 创建配置文件,链接消息队列(port name MQ账号密码)
- 创建配置类,声明队列
- 使用消息生产者发送消息
- 使用消息消费者接受消息
1 引入AMQP的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
- 创建配置文件,链接消息队列(port name MQ账号密码)
server:
port: 9003
spring:
application:
name: demo03
rabbitmq:
host: 120.55.58.250
port: 5672
password: guest
username: guest
- 创建配置类,声明队列
@Configuration
public class WorkQueueConfig {
public static String queueName01="fanout.queue01";
public static String queueName02="fanout.queue02";
public static String exchangeName="fanout.exchange";
@Bean
public Queue fanoutQueue01(){
return new Queue(queueName01);
}
@Bean
public Queue fanoutQueue02(){
return new Queue(queueName02);
}
@Bean
public FanoutExchange fanoutExchange(){
return new FanoutExchange(exchangeName);
}
@Bean
//绑定交换机和队列
public Binding bindingQueue01(Queue fanoutQueue01,FanoutExchange fanoutExchange){
return BindingBuilder.bind(fanoutQueue01).to(fanoutExchange);
}
@Bean
//绑定交换机和队列
public Binding bindingQueue02(Queue fanoutQueue02,FanoutExchange fanoutExchange){
return BindingBuilder.bind(fanoutQueue02).to(fanoutExchange);
}
}
- 使用消息生产者发送消息
@RestController
public class TestController {
@Autowired
private RabbitTemplate rabbitTemplate;
@RequestMapping("/sendMessage")
public void sendMessage(){
for (int i=1;i<=5;i++){
rabbitTemplate.convertAndSend("fanout.exchange","","发布、订阅"+i);
}
}
}
- 使用消息消费者接受消息
@Component
public class ReceiveListener {
@RabbitListener(queues="fanout.queue01")
public void ReceiveMessage01(String message){
System.out.println("ReceiveMessage01"+message);
}
@RabbitListener(queues="fanout.queue02")
public void ReceiveMessage02(String message){
System.out.println("ReceiveMessage02"+message);
}
}
##地址 http://localhost:9003/sendMessage