3. 配置文件, 连接消息队列
- spring.rabbitmq.host=127.0.0.1
- spring.rabbitmq.port=5672
- spring.rabbitmq.username=admin
- spring.rabbitmq.password=123
- spring.rabbitmq.virtual-host=/member
rabbitmq 配置类: 创建队列和交换机
- @Configuration
- public class RabbitMQConfig {
- // 多个队列名称
- private final static String QUEUE_NAME = "shopping_banner";
- }
- @Bean
- public Queue queue() {
- return new Queue(RabbitMQConfig.QUEUE_NAME);
- }
4. 写代码
简单队列
1. 生产者
- @Controller
- @RequestMapping("BannerController")
- public class BannerController {
- @Autowired
- private AmqpTemplate rabbitTemplate;
- @RequestMapping("selectBybanners")
- public String selectBybanners() {
- return "banner";
- }
- @RequestMapping("add")
- public String add() {
- Banner banner = new Banner();
- banner.setBanner("鞋");
- System.out.println("aaa");
- // rabbitTemplate.convertAndSend("shopping_banner","我是一个 banner");
- rabbitTemplate.convertAndSend("shopping_banner",banner);
- return "banner";
- }
- }
2. 接收者
- @Service
- // 注解指定目标方法来作为消费消息的方法, 通过注解参数指定所监听的队列
- // 使用 @RabbitListener 注解标记方法, 当监听到队列 中有消息时则会进行接收并处理
- @RabbitListener(queues = "shopping_banner")
- public class ReceivedBanner {
- // @RabbitListener 标注在类上面表示当有收到消息的时候, 就交给 @RabbitHandler 的方法处理,
- // 不同类型的消息使用不同的方法来处理.
- @RabbitHandler
- public void aaa(String hello) {
- System.out.println("获取消息:" + hello);
- }
- @RabbitHandler
- public void bb(Banner banner) {
- System.out.println("获取消息:" + banner.getBanner());
- }
- }
来源: http://www.bubuko.com/infodetail-3194730.html