Является ли ThreadLocal предпочтительнее, чем HttpServletRequest.setAttribute(«ключ», «значение» )?

Спецификация сервлета (см. мой предыдущий вопрос)гарантирует, что один и тот же поток будет выполнять все фильтры и связанный с ними сервлет. Учитывая это, я не вижу никакого смысла в передаче данных с помощью HttpServletRequest.setAttribute, если есть возможность использовать ThreadLocal(, предполагая, что вы правильно очищаете ). Я считаю, что использованиеThreadLocal:типа-безопасности и повышения производительности дает два преимущества, поскольку не используются строковые ключи или сопоставления (, за исключением, вероятно, коллекции потоков с помощью (не-строки). идентификатор потока ).

Кто-нибудь может подтвердить, прав ли я, чтобы продолжить отказ от setAttribute?

8
задан necromancer 10 April 2012 в 21:08
поделиться