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());
}
}
转载于:https://www.cnblogs.com/lazhaoqian/p/11394782.html