AOP Alliance
MethodInterceptor that processes method invocations
asynchronously, using a given
org.springframework.core.task.AsyncTaskExecutor.
Typically used with the
org.springframework.scheduling.annotation.Async annotation.
In terms of target method signatures, any parameter types are supported.
However, the return type is constrained to either
void or
java.util.concurrent.Future. In the latter case, the 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 the return value through
(like Spring's
org.springframework.scheduling.annotation.AsyncResultor EJB 3.1's
javax.ejb.AsyncResult).
When the return type is
java.util.concurrent.Future, any exception thrown
during the execution can be accessed and managed by the caller. With
voidreturn type however, such exceptions cannot be transmitted back. In that case an
AsyncUncaughtExceptionHandler can be registered to process such exceptions.
As of Spring 3.1.2 the
AnnotationAsyncExecutionInterceptor subclass is
preferred for use due to its support for executor qualification in conjunction with
Spring's
@Async annotation.