Bom dia Não encontrei no material a explicação da anotação @Payload Para que ela serve e quando devo usá-la?
Bom dia Não encontrei no material a explicação da anotação @Payload Para que ela serve e quando devo usá-la?
Olá Djalma, tudo bem? A anotação @Payload é utilizada em conjunto com a biblioteca Spring AMQP para indicar qual é o objeto que deve ser enviado como mensagem em uma operação de envio de mensagem utilizando o RabbitMQ.
Quando uma mensagem é enviada, o conteúdo é encapsulado em um objeto Message que é transmitido através do RabbitMQ. A anotação @Payload é usada para indicar qual é o objeto que deve ser colocado dentro do corpo da mensagem. Por exemplo:
@Autowired
private RabbitTemplate rabbitTemplate;
public void enviarMensagem(String mensagem) {
rabbitTemplate.convertAndSend("fila-teste", mensagem);
}
No exemplo acima, estamos enviando uma mensagem simples como uma String. Se quisermos enviar um objeto mais complexo, podemos utilizar a anotação @Payload para indicar que este é o objeto que deve ser colocado no corpo da mensagem:
@Autowired
private RabbitTemplate rabbitTemplate;
public void enviarMensagem(@Payload Ordem ordem) {
rabbitTemplate.convertAndSend("fila-teste", null, ordem);
}
Neste exemplo, estamos enviando um objeto do tipo Ordem como mensagem, e utilizando a anotação @Payload para indicar que este é o objeto que deve ser colocado no corpo da mensagem.
Espero ter ajudado!
Muito obrigado Otavio