Questão nº 30

Questão de Tecnologia da Informação · FCC TRT19 2022 (nº 30)

FCC2022Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

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

Resposta comentada

Gabarito Alternativa D

Quando você precisa enviar uma mensagem em uma aplicação Spring Boot para um sistema de mensageria (como o RabbitMQ), você usa o componente RabbitTemplate. Ele facilita a conversão do seu dado (como um texto JSON) em um formato de mensagem e o envio para o destino correto.

  • (A) Incorreta: O nome da variável injetada é rabbitTemplate (com 'r' minúsculo), não RabbitTemplate (com 'R' maiúsculo). Além disso, o método convert apenas converte o objeto para uma mensagem, mas não a envia.
  • (B) Incorreta: O nome da variável injetada está correto (rabbitTemplate), mas o método Send (com 'S' maiúsculo) não existe. Métodos em Java seguem a convenção camelCase, começando com minúscula.
  • (C) Incorreta: O nome da variável injetada está incorreto (RabbitTemplate com 'R' maiúsculo). Mesmo que fosse rabbitTemplate.send, o método send geralmente espera um objeto Message já formatado, não um objeto Java (como a String json) que precisa ser convertido antes do envio.
  • (D) Correta: Esta é a forma idiomática e correta. O método convertAndSend do RabbitTemplate é projetado especificamente para converter um objeto Java (como a String json) em um formato de mensagem e, em seguida, enviá-lo para o destino especificado pela routingKey.
  • (E) Incorreta: O nome da variável injetada está incorreto (RabbitTemplate com 'R' maiúsculo). A sintaxe convert.send sugere uma chamada encadeada que não corresponde à API padrão do RabbitTemplate para este cenário. A funcionalidade de converter e enviar é encapsulada no método convertAndSend.

Fonte: FCC TRT19 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho