Questão de Programação — Frameworks Java — FGV 2026
Programação›Frameworks Java
Código
fg133907
Banca
FGV
Órgão
TJ-RJ
Ano
2026
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação - Analista de Sistemas
O desenvolvedor Rafael está construindo um microsserviço de gerência de inventário com Java e Spring Boot. Analise o seguinte trecho do código do microsserviço:Considere que todos os imports necessários foram feitos corretamente. Com base no trecho de código apresentado, a requisição GET /inventario/produto3 retornará:
A0;
B5;
C10;
D404;
E500.
Revelar gabarito e comentário▾
GabaritoA — 0;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Spring Boot: mapeamento de rotas e parâmetros de caminho
Gabarito: letra A. A requisição GET /inventario/produto3 retornará 0, pois o código mapeia o caminho /inventario/{id} e o método buscarProduto retorna o valor do produto com o ID fornecido, que não existe no mapa, resultando no valor padrão 0 (Spring MVC, anotação @GetMapping e @PathVariable).
O trecho de código apresentado define um controlador REST em Spring Boot. A anotação @GetMapping("/inventario/{id}") mapeia requisições HTTP GET para o caminho /inventario/{id}, onde {id} é um parâmetro de caminho (path variable). O método buscarProduto recebe esse parâmetro e o utiliza para buscar um produto em um mapa (provavelmente um Map<Integer, Integer> que simula um banco de dados em memória).
A lógica do método é: se o mapa contém o ID fornecido, retorna o valor associado; caso contrário, retorna um valor padrão, que no código é 0. Como a requisição é para /inventario/produto3, o parâmetro id recebe o valor 3. Se o mapa não contém a chave 3, o método retorna 0. O gabarito oficial é a letra A, indicando que o produto com ID 3 não está cadastrado no mapa, e o retorno é o valor padrão 0.
É importante entender a diferença entre parâmetros de caminho (@PathVariable) e parâmetros de consulta (@RequestParam). O primeiro extrai valores da própria URL, enquanto o segundo extrai valores após o ?. Nesta questão, a URL /inventario/produto3 indica que produto3 é o valor do parâmetro de caminho id, e não um parâmetro de consulta. A banca explora exatamente essa confusão: o candidato pode pensar que produto3 é um valor literal e não um parâmetro, ou que a requisição retornaria um erro 404 por não encontrar o recurso. No entanto, o código trata produto3 como o valor do ID e, como não há produto com esse ID, retorna o valor padrão 0.
1@GetMapping("/inventario/{id}")
2@PathVariable id = "produto3"
3Busca no mapa (chave 3)
4Não encontrado → retorna 0
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque o código retorna o valor padrão 0 quando o ID não é encontrado no mapa. A requisição GET /inventario/produto3 faz com que o parâmetro id receba o valor 3. Como o mapa não contém a chave 3, o método retorna 0. Isso demonstra o comportamento padrão de um controlador Spring Boot que utiliza @GetMapping e @PathVariable para mapear rotas dinâmicas.
Alternativa B — ❌ Incorreta
A alternativa B sugere que o retorno seria 5. Isso ocorreria se o mapa contivesse a chave 3 associada ao valor 5. No entanto, o código não indica que o produto com ID 3 existe no mapa. O valor 5 poderia ser um distrator, representando um produto que não está cadastrado ou um valor de outro produto. A resposta correta é 0, pois o ID 3 não está presente no mapa.
Alternativa C — ❌ Incorreta
A alternativa C sugere que o retorno seria 10. Isso ocorreria se o mapa contivesse a chave 3 associada ao valor 10. No entanto, o código não indica que o produto com ID 3 existe no mapa. O valor 10 poderia ser um distrator, representando um produto que não está cadastrado ou um valor de outro produto. A resposta correta é 0, pois o ID 3 não está presente no mapa.
Alternativa D — ❌ Incorreta
A alternativa D sugere que o retorno seria 404. Isso ocorreria se o código lançasse uma exceção ou retornasse um status HTTP 404 quando o produto não fosse encontrado. No entanto, o código retorna o valor padrão 0, não um erro HTTP. O status 404 é comumente usado em APIs REST para indicar que o recurso não foi encontrado, mas neste caso o método não lança exceção nem retorna um ResponseEntity com status 404. A resposta correta é 0.
Alternativa E — ❌ Incorreta
A alternativa E sugere que o retorno seria 500. Isso ocorreria se o código lançasse uma exceção não tratada, resultando em um erro interno do servidor. No entanto, o código não lança exceção; ele simplesmente retorna o valor padrão 0 quando o ID não é encontrado. O status 500 é usado para erros internos do servidor, mas neste caso não há erro. A resposta correta é 0.
NÃO CAIA NESSA!
A banca tenta confundir o candidato ao usar produto3 na URL, fazendo parecer que é um recurso específico que deveria retornar um valor ou um erro 404. No entanto, o código trata produto3 como o valor do parâmetro de caminho id, e como não há produto com ID 3, retorna o valor padrão 0. O candidato deve prestar atenção à anotação @GetMapping("/inventario/{id}") e ao comportamento do método quando o ID não é encontrado.
PEGA ESSA DICA!
Para resolver questões de Spring Boot, identifique as anotações de mapeamento (@GetMapping, @PostMapping, etc.) e os parâmetros (@PathVariable, @RequestParam). Verifique o que o método retorna em cada caso, especialmente quando o recurso não é encontrado. Isso ajuda a evitar erros de interpretação.