Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2024

ProgramaçãoLinguagens de programação
Código
fg098209
Banca
FGV
Órgão
TJ-AP
Ano
2024
Nível
Superior
Cargo
Apoio Especializado - Tecnologia da Informação - Desenvolvimento de Sistemas
A analista Joelma está desenvolvendo o web service tjapRest utilizando o Spring Boot. Determinadas operações de tjapRest devem ser executadas assincronamente. Para implementar as operações assíncronas de forma simples e direta, Joelma recorreu a duas anotações padrões do Spring. A primeira anotação habilita o suporte do Spring à execução de métodos assíncronos. A segunda anotação marca determinado método como um candidato à execução assíncrona.Joelma recorreu às anotações do Spring:
  1. A@EnableAsync e @Async;
  2. B@AsyncConfigurer e @Async;
  3. C@EnableAsync e @Asynchronous;
  4. D@AsyncConfigurer e @EnableAsync;
  5. E@AsyncConfigurer e @Asynchronous.
Revelar gabarito e comentário

GabaritoA — @EnableAsync e @Async;

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 – Anotações para Execução Assíncrona

Gabarito: letra A. A anotação @EnableAsync habilita o suporte do Spring à execução de métodos assíncronos (deve ser colocada em uma classe de configuração), e @Async marca um método específico como candidato à execução assíncrona. Essas são as duas anotações padrão do Spring Boot para implementar operações assíncronas de forma simples e direta.

A questão exige o conhecimento exato dos nomes das anotações. Muitos candidatos confundem @Async com @Asynchronous (que não existe no Spring) ou pensam que @AsyncConfigurer (uma interface, não anotação) substitui @EnableAsync.

NÃO CAIA NESSA!

A banca troca os nomes das anotações, inserindo opções com @Asynchronous (inexistente) e @AsyncConfigurer (interface de configuração, não uma anotação). Decore o par correto: @EnableAsync na classe de configuração e @Async no método.

Alternativa A — ✅ Correta ⟵ GABARITO

Combina @EnableAsync e @Async, exatamente o que a documentação do Spring preconiza para habilitar e executar métodos assíncronos.

Alternativa B — ❌ Incorreta

Troca @EnableAsync por @AsyncConfigurer. @AsyncConfigurer é uma interface que permite configurar o executor assíncrono, mas não habilita o suporte a métodos assíncronos; quem faz isso é @EnableAsync.

Alternativa C — ❌ Incorreta

Substitui @Async por @Asynchronous. O Spring não possui a anotação @Asynchronous; o nome correto é @Async.

Alternativa D — ❌ Incorreta

Apresenta @AsyncConfigurer e @EnableAsync. Falta @Async para marcar os métodos. Apenas habilitar não é suficiente; é preciso anotar os métodos com @Async.

Alternativa E — ❌ Incorreta

Contém @AsyncConfigurer e @Asynchronous, ambos incorretos: o primeiro não é anotação de habilitação, e o segundo não existe.

PEGA ESSA DICA!

Grave o par @EnableAsync (habilitação) + @Async (método). Na prova, desconfie de qualquer variação como @Asynchronous ou @AsyncConfigurer no lugar de @EnableAsync.

Gabarito: letra A

Link permanente: /questoes/fg098209