Хотя один поток обычно обрабатывает один запрос (если говорить о tomcat, наверняка), поток может обрабатывать несколько запросов с течением времени, но без завершения существующего запроса, если не используются включения / пересылки.
Я бы ОЧЕНЬ строго рекомендовал вам использовать атрибут (setAttribute ()) указанного запроса с вашим бином и использовать его для профилирования.Если вы не можете предоставить запрос к различным методам ... ну, вы застряли с ThreadLocal [что не так уж и плохо].
В качестве альтернативы вы можете опубликовать код, как установить / удалить threadLocalbean.
Имейте в виду, что вам также необходимо некоторое управление этим компонентом (он не будет доступен вне запроса).
Редактировать: забыл спросить: используете ли выпопытаться / наконец вызвать doFilter (...)?
код должен быть таким
installBean();
try{
chain.doFilter(req, resp);
}finally{
Bean b = deinstallBean();
useTheMetrics(b);
//potentially, process exception, etc
}