我正在ThreadLocal
中设置一个ServletFilter
变量,用于在Web应用程序中设置租户。现在,我需要在请求处理结束时执行ThreadLocal
清理。
我认为这是在多租户应用程序中获取/设置tenantId的常用方法。
但是我无法确定可用于执行此清理操作的公共位置。
是否有任何挂钩/回调可用于此目的?
最佳答案
正如您说的那样,您正在ServletFilter中设置ThreadLocal变量,您应该在同一过滤器中进行清理。就像是 :
public void doFilter(ServletRequest request, ServletResponse response, FilterChain fc) throws ServletException, IOException {
//set thread local variable
// stuff ...
try {
// other stuff ...
fc.filter(request, response)
// still other stuff ...
}
finally {
// cleanup ThreadLocal variable
}
}
关于java - HttpServletRequest的 Hook /回调完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25264088/