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:
- A)@EnableAsync e @Async;
Correta: @EnableAsync habilita o suporte do Spring para execucao assincrona e @Async marca o metodo para ser executado assincronamente.
- B)@AsyncConfigurer e @Async;
Errada: @AsyncConfigurer nao e a anotacao padrao para habilitar assincronia e, alem disso, ela nao substitui @EnableAsync.
- C)@EnableAsync e @Asynchronous;
Errada: @Asynchronous nao e a anotacao padrao do Spring para esse fim; o nome correto e @Async.
- D)@AsyncConfigurer e @EnableAsync;
Errada: @AsyncConfigurer nao habilita o suporte assincrono como pede o enunciado, embora @EnableAsync esteja correta.
- E)@AsyncConfigurer e @Asynchronous.
Errada: @Asynchronous nao e a anotacao correta do Spring, e @AsyncConfigurer nao faz o papel de habilitar a execucao assincrona.
Gabarito: A
No Spring Boot, tarefas assincronas sao muito comuns quando voce quer que um metodo rode sem travar a execucao principal. Para isso, o Spring oferece um par classico de anotacoes: uma para habilitar a infraestrutura de assincronia e outra para marcar o metodo que podera ser executado fora da thread principal. E isso cai bastante em prova porque a banca mistura nomes parecidos de proposito, quase como um teste de paciencia.