我将以下超类用于需要访问请求范围的任务。基本上,你可以扩展它并在onRun()方法中实现你的逻辑。
import org.springframework.web.context.request.RequestAttributes;import org.springframework.web.context.request.RequestContextHolder;public abstract class RequestAwareRunnable implements Runnable { private final RequestAttributes requestAttributes; private Thread thread; public RequestAwareRunnable() { this.requestAttributes = RequestContextHolder.getRequestAttributes(); this.thread = Thread.currentThread(); } public void run() { try { RequestContextHolder.setRequestAttributes(requestAttributes); onRun(); } finally { if (Thread.currentThread() != thread) { RequestContextHolder.resetRequestAttributes(); } thread = null; } } protected abstract void onRun();}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)