public class AsyncExecutionInterceptor extends Object implements org.aopalliance.intercept.MethodInterceptor, Ordered
MethodInterceptor
that processes method invocations
asynchronously, using a given AsyncTaskExecutor
.
Typically used with the org.springframework.context.task.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 AsyncResult
or EJB 3.1's javax.ejb.AsyncResult
).
Async
,
AsyncAnnotationAdvisor
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
AsyncExecutionInterceptor(AsyncTaskExecutor asyncExecutor)
Create a new AsyncExecutionInterceptor.
|
AsyncExecutionInterceptor(Executor asyncExecutor)
Create a new AsyncExecutionInterceptor.
|
public AsyncExecutionInterceptor(AsyncTaskExecutor asyncExecutor)
asyncExecutor
- the Spring AsyncTaskExecutor to delegate topublic AsyncExecutionInterceptor(Executor asyncExecutor)
asyncExecutor
- the java.util.concurrent
Executor
to delegate to (typically a ExecutorService
public Object invoke(org.aopalliance.intercept.MethodInvocation invocation) throws Throwable
invoke
in interface org.aopalliance.intercept.MethodInterceptor
Throwable
public int getOrder()
Ordered
Normally starting with 0, with Integer.MAX_VALUE
indicating the greatest value. Same order values will result
in arbitrary positions for the affected objects.
Higher values can be interpreted as lower priority. As a consequence, the object with the lowest value has highest priority (somewhat analogous to Servlet "load-on-startup" values).
Copyright © 2014. All Rights Reserved.