# 注解方式声明

除了使用java bean 方式配置交换机,路由,队列还可以使用注解方式,跟bean方式一样

# 代码

# 消费者

/**
 * 基于注解方式监听
 */
@Component
public class RabbitMQAnnotationStyleListener {

    @RabbitListener(
            bindings = @QueueBinding(
                    value = @Queue(name = "test.queue", durable = "false"),
                    exchange = @Exchange(name = "test.exchange", type = ExchangeTypes.DIRECT),
                    key = "t"
            )
    )
    public void listener(Message message, Channel channel) {
        System.out.println(new String(message.getBody(), StandardCharsets.UTF_8));
    }

}

# 生产者

@RestController
@RequestMapping("/p")
public class ProducerController {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @GetMapping
    public void send() {
        rabbitTemplate.convertAndSend(
                "test.exchange",
                "t",
                "注解方式申明"
        );
    }

}