Os métodos anotados com @Async devem retornar Future ou void

Essa regra sinaliza os métodos Java anotados com org.springframework.scheduling.annotation.Async que retornam tipos diferentes de void, Future<t>, CompletableFuture<t> ou ListenableFuture<t>.

No Spring Framework 6, esses requisitos de tipo de retorno são rigorosamente aplicados em tempo de execução. Qualquer @Async que retorna um tipo não suportado agora lançará uma Exceção.

O exemplo a seguir mostra o uso válido de métodos que usam @Async com um tipo de retorno compatível.


import org.springframework.scheduling.annotation.Async;
import java.util.concurrent.Future;
import java.util.concurrent.CompletableFuture;
import org.springframework.util.concurrent.ListenableFuture;

public class ValidAsyncMethods {
	
    @Async
    public void asyncVoid() {
    }
    @Async
    public Future<String> asyncFuture() {
        return null;
    }
    @Async
    public CompletableFuture<Integer> asyncCompletableFuture() {
        return null;
    }
    @Async
    public ListenableFuture<String> asyncListenableFuture() {
        return null;
    }
}

Para obter informações adicionais, consulte os recursos a seguir: