Metody s anotací @Async musí vracet buď Future, nebo void

Toto pravidlo označuje metody Java s anotací org.springframework.scheduling.annotation.Async které vracejí jiné typy než void, Future<t>, CompletableFuture<t> nebo ListenableFuture<t>.

V systému Spring Framework 6 jsou tyto požadavky na návratové typy striktně vynucovány za běhu. Jakékoli @Async metoda vracející nepodporovaný typ nyní vyhodí výjimku.

Následující příklad ukazuje platné použití metod, které používají @Async s vyhovujícím návratovým typem.


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;
    }
}

Další informace viz následující prostředky: