Questão FC373994
Considere que, no ambiente de mensageria da Plataforma Digital do Poder Judiciário PDPJ-Br, os serviços se comunicam entre si por meio de troca de mensagens, fazendo uso de um Mess
Automação e Gestão de Projetos de Software
FCC · 2022
Considere que, no ambiente de mensageria da Plataforma Digital do Poder Judiciário PDPJ-Br, os serviços se comunicam entre si por meio de troca de mensagens, fazendo uso de um Message Broker. Neste ambiente, em condições ideais, um Analista, dentre as ações necessárias, está escrevendo o código para envio de uma mensagem usando Java. Ele utiliza Spring Boot como framework de sua aplicação Java e Maven como gerenciador de dependências. Dentre as ações para viabilizar o envio da mensagem, ele adicionou no arquivo POM.XML da aplicação:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
Já na classe responsável por enviar mensagens da sua aplicação, ele acrescentou:
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendMessage(String json) {
...I...(this.getRoutingKey(), json);
}
A lacuna I deve ser corretamente preenchida com
- this.RabbitTemplate.convert
- this.rabbitTemplate.Send
- this.RabbitTemplate.send
- this.rabbitTemplate.convertAndSend
- this.RabbitTemplate.convert.send
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
this.rabbitTemplate.convertAndSend é a chamada correta porque utiliza o bean RabbitTemplate (injetado via @Autowired) para enviar uma mensagem ao broker e, ao mesmo tempo, converter o payload adequado antes do envio.
O método convertAndSend recebe a routing key e o objeto a ser enviado; internamente ele aplica o MessageConverter configurado (por exemplo, converte um POJO em JSON) e transforma a mensagem em bytes conforme necessário pelo RabbitMQ.
Ao usar essa assinatura, você delega ao Spring AMQP (fornecido pela dependência spring-boot-starter-amqp) a serialização e o envio, garantindo compatibilidade com as filas/exchanges e simplificando o código de publicação.
Portanto, chamar this.rabbitTemplate.convertAndSend(this.getRoutingKey(), json) é a forma correta e idiomática para publicar a mensagem com a routing key desejada.
Conteúdo do catálogo FC Concursos · Atualizado em