Metodele adnotate cu @Async trebuie să returneze Future sau void

Această regulă marchează Java metode adnotate cu org.springframework.scheduling.annotation.Async care returnează alte tipuri decât void, Future<t>, CompletableFuture<t> sau ListenableFuture<t>.

În Spring Framework 6, aceste cerințe privind tipurile de retur sunt strict aplicate în timpul execuției. Oricare @Async care returnează un tip nesuportat va arunca acum o excepție.

Următorul exemplu arată utilizarea validă a metodelor care utilizează @Async cu un tip de retur conform.


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

Pentru informaţii suplimentare, vedeţi resursele următoare: