一、SpringBoot整合RabbitMQ
1. 添加starter依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2. application.properties中添加连接信息
spring.application.name=springboot_rabbitmq
spring.rabbitmq.host=node1
spring.rabbitmq.virtual-host=/
spring.rabbitmq.username=root
spring.rabbitmq.password=123456
spring.rabbitmq.port=5672
3. 主入口类
@SpringBootApplication
public class RabbitqmDemo {
public static void main(String[] args) {
SpringApplication.run(RabbitqmDemo.class, args);
}
}
@Configuration
public class RabbitConfig {
@Bean
public Queue queue() {
return new Queue("myqueue", false, false, false, null);
}
@Bean
public Exchange exchange() {
return new TopicExchange("direct.biz.ex", false, false, null);
}
@Bean
public Binding binding() {
return new Binding("myqueue",
Binding.DestinationType.QUEUE,
"direct.biz.ex",
"myex",
null);
}
}
5. 使用RestController发送消息
@RestController
public class HelloController {
@Autowired
private AmqpTemplate rabbitTemplate;
@RequestMapping("/send/{message}")
public String sendMessage(@PathVariable String message) {
rabbitTemplate.convertAndSend("myex", "direct.biz.ex",message);
return "ok";
}
}
6. 使用监听器,用于推消息
@Component
public class HelloConsumer {
@RabbitListener(queues = "myqueue")
public void service(String message) {
System.out.println("消息队列推送来的消息:" + message);
}
}