应该实现和使用哪个HandlerInterceptorAdapter 方法来清除ThreadLocal?
Which HandlerInterceptorAdapter method should be implemented and used to clear ThreadLocal?
我已经编写了 HandlerInterceptorAdapter 的实现。它将一些特定于请求的数据放入 ThreadLocal 中。因为线程被重新用于新请求,所以在处理请求时必须删除放入 ThreadLocal 的数据。我应该实施哪个 HandlerInterceptorAdapter 方法来清除它?我看到有两个选项,postHandle 和 afterCompletion。我需要 ThreadLocal 中的数据保证被删除。
使用afterCompletion
。它将在任何结果
时调用
Callback after completion of request processing, that is, after rendering the view. Will be called on any outcome of handler execution, thus allows for proper resource cleanup.
参考
备注
- 如果你要从
preHandle
到 return false
你应该清理预句柄本身的本地线程,因为 false
意味着你已经处理了响应, 因此 postHanlde()
或 afterCompletion
将不会被调用
我已经编写了 HandlerInterceptorAdapter 的实现。它将一些特定于请求的数据放入 ThreadLocal 中。因为线程被重新用于新请求,所以在处理请求时必须删除放入 ThreadLocal 的数据。我应该实施哪个 HandlerInterceptorAdapter 方法来清除它?我看到有两个选项,postHandle 和 afterCompletion。我需要 ThreadLocal 中的数据保证被删除。
使用afterCompletion
。它将在任何结果
Callback after completion of request processing, that is, after rendering the view. Will be called on any outcome of handler execution, thus allows for proper resource cleanup.
参考
备注
- 如果你要从
preHandle
到 returnfalse
你应该清理预句柄本身的本地线程,因为false
意味着你已经处理了响应, 因此postHanlde()
或afterCompletion
将不会被调用