Metody opatrzone adnotacją @Async muszą zwracać wartość Future lub void

Ta reguła oznacza metody Java z adnotacją org.springframework.scheduling.annotation.Async które zwracają typy inne niż void, Future<t>, CompletableFuture<t> LUB ListenableFuture<t>.

W Spring Framework 6 te wymagania dotyczące typu zwracanego są ściśle egzekwowane w czasie wykonywania. Dowolne @Async zwracająca nieobsługiwany typ będzie teraz zgłaszać wyjątek.

Poniższy przykład pokazuje prawidłowe użycie metod wykorzystujących @Async ze zgodnym typem zwracanym.


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

Więcej informacji na ten temat zawierają następujące zasoby: