我在ThreadLocal
中设置ServletFilter
变量,用于在我的网络应用程序中设置租户。现在,我需要在请求处理结束时执行ThreadLocal
清理。
我认为这是在多租户应用程序中获取/设置tenantId的常用方法。 但我无法确定可用于执行此清理的常用位置。
是否有可用于此目的的钩子/回调?
答案 0 :(得分:1)
正如您所说,您正在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
}
}