@Target(value={METHOD,TYPE})
@Retention(value=RUNTIME)
@Documented
public @interface Async
In terms of target method signatures, any parameter types are supported.
However, the return type is constrained to either void or
Future. In the latter case, you may declare the
more specific ListenableFuture or
CompletableFuture types which allow for richer
interaction with the asynchronous task and for immediate composition with
further processing steps.
A Future handle returned from the proxy will be an actual asynchronous
Future that can be used to track the result of the asynchronous method
execution. However, since the target method needs to implement the same signature,
it will have to return a temporary Future handle that just passes a value
through: e.g. Spring's AsyncResult, EJB 3.1's AsyncResult,
or CompletableFuture.completedFuture(Object).
AnnotationAsyncExecutionInterceptor,
AsyncAnnotationAdvisor| Modifier and Type | Optional Element and Description |
|---|---|
java.lang.String |
value
A qualifier value for the specified asynchronous operation(s).
|
public abstract java.lang.String value
May be used to determine the target executor to be used when executing this
method, matching the qualifier value (or the bean name) of a specific
Executor or
TaskExecutor
bean definition.
When specified on a class level @Async annotation, indicates that the
given executor should be used for all methods within the class. Method level use
of Async#value always overrides any value set at the class level.