我有一个使用 ThreadLocal 的 Grails 应用程序。
目前 ThreadLocal 填充和清除由过滤器处理(之前:填充,之后:清除)。
问题是过滤器的后调用是在模板渲染之前运行的,所以我需要的变量过早地都是空值。是否有一些简单的方法可以在响应完全写入后触发 ThreadLocals 的清除?
一种方法是在填充 ThreadLocal 之前清除它,从而将所有工作留给过滤器的before -call。但我不喜欢让 ThreadLocal “携带” vars 的想法,因为它们不再用于任何事情,所以需要其他东西。