0.准备
基础配置参照:https://www.aimaboge.com/article/537
创建Book类
1、启动类上添加rabbitmq开启注解
package com.laoxu.amqp;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableRabbit
@SpringBootApplication
public class SpringBoot02AmqpApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot02AmqpApplication.class, args);
}
}
2、在service层添加消息监听注解
package com.laoxu.amqp.service;
import com.laoxu.amqp.bean.Book;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;
@Service
public class BookServiceImpl implements BookService {
@Override
@RabbitListener(queues = "laoxu")
public void receive(Book book) {
System.out.println("接收消息:" + book);
}
}
当laoxu消息队列有消息时,则会调用recevice()方法消费消息(打印后删除队列中的消息)。
package com.laoxu.amqp.service;
import com.laoxu.amqp.bean.Book;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;
@Service
public class BookServiceImpl implements BookService {
@Override
@RabbitListener(queues = "laoxu")
public void receive(Book book) {
System.out.println("接收消息:" + book);
}
@Override
@RabbitListener(queues = "laoxu.news")
public void receive2(Message message) {
System.out.println(message.getBody());
System.out.println(message.getMessageProperties());
}
}
当laoxu.news消息队列有消息时,则会调用receive2()方法打印消息体和消息相关信息。