Los métodos anotados con @Async deben devolver Future o void

Esta regla marca Java métodos anotados con org.springframework.scheduling.annotation.Async que devuelven tipos distintos de void, Future<t>, CompletableFuture<t> o ListenableFuture<t>.

En Spring Framework 6, estos requisitos de tipo de retorno se aplican estrictamente en tiempo de ejecución. Cualquiera @Async que devuelva un tipo no admitido lanzará una excepción.

El siguiente ejemplo muestra el uso válido de métodos que utilizan @Async con un tipo de retorno conforme.


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 obtener más información, consulte los recursos siguientes: