引入RabbitMQ启动器
<!-- RabbitMQ启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
配置RabbitMQ使得放入和取出的数据都是以Json的格式
@Configuration
public class RabbitMQConfig {
@Bean
public MessageConverter messageConverter(){
return new Jackson2JsonMessageConverter();
}
}
放数据、取数据
@Autowired
private RabbitTemplate rabbitTemplate;
//向rabbitMQ存数据
rabbitTemplate.convertAndSend("chen.direct","atguigu",new Person("chenli","123"));
//从rabbitMQ中取数据
Object o = rabbitTemplate.receiveAndConvert("atguigu");
配置监听,使得只要消息队列中存在数据,就会立即执行方法体
@RabbitListener(queues = "atguigu")//queues里面放的是队列,可以是多个
//监听消息队列的,只要队列一有Person类型的消息,就会被监听到,
public void receive1(Person person){
System.out.println("该方法,立即执行");
System.out.println(person);
}
//监听消息队列的,只要队列一有String类型的消息,就会被监听到,
@RabbitListener(queues = "atguigu")//queues里面放的是队列,可以是多个
public void receive2(String str){
System.out.println("监听消息队列的,只要队列一有消息,就会被监听到,该方法,立即执行");
System.out.println(str);
}
在启动类上加上@EnableRabbit注解,开启注解驱动,@RabbitListener就会生效
@SpringBootApplication
@EnableRabbit
public class RbmqApplication {
public static void main(String[] args) {
SpringApplication.run(RbmqApplication.class, args);
}
}