Alternativa D
A questão aborda conceitos fundamentais do framework Spring Boot, especificamente sobre como manipular requisições HTTP e mapear URLs em aplicações web. O foco está na identificação da anotação correta para capturar dados dinâmicos inseridos diretamente no caminho (path) da URL.
Quando criamos uma API RESTful, frequentemente utilizamos parâmetros variáveis nas rotas para identificar recursos específicos, como um ID de usuário ou um produto. O Spring Boot fornece anotações específicas para tratar esses cenários de forma padronizada e segura.
Analise
- @Autowired: Utilizada para injeção de dependências automática pelo container do Spring. Não tem relação com extração de dados da URL.
- @RequestBody: Responsável por converter o corpo da mensagem HTTP (geralmente JSON) para um objeto Java. É usado quando os dados vêm no payload da requisição, não na URI.
- @Validated: Aciona mecanismos de validação de beans (como JSR 303/380) nos argumentos do método. Garante integridade dos dados, mas não extrai variáveis da URI.
- @PathVariable: Correta. Esta anotação extrai valores de partes variáveis da URI. Exemplo: na rota
/usuarios/{id}, o {id} é capturado usando @PathVariable Long id. - @RestController: Combinação de
@Controller e @ResponseBody, marcando a classe inteira como um controlador REST. Define o comportamento da classe, mas não extrai variáveis individuais.
Em resumo, a função específica de "extrair partes variáveis de uma URI" corresponde exclusivamente à anotação @PathVariable.
Alternativa D.