Как почистить локальные потоки после написанного ответа? - PullRequest
0 голосов
/ 02 марта 2011

У меня есть приложение Grails, которое использует ThreadLocal.

В настоящее время заполнение и очистка ThreadLocal обрабатывается фильтром ( до : заполняется, после : очищается).

Проблема в том, что фильтр после -call выполняется до отображения шаблона, поэтому все мои необходимые переменные преждевременно обнуляются. Есть ли какой-нибудь простой способ инициировать очистку ThreadLocals после того, как ответ полностью написан?

Один из подходов состоит в том, чтобы очистить ThreadLocal перед его заполнением, оставляя всю работу для фильтра до -Call.Но мне не нравится идея оставить ThreadLocal «несущим» переменные после того, как они больше не используются ни для чего, поэтому нужно что-то еще.

1 Ответ

0 голосов
/ 02 марта 2011

after вызывается после завершения действия контроллера - вы хотите, чтобы очистка находилась в afterView, который вызывается после визуализации представления.

...