Потокобезопасность - вот та причина, по которой у вас есть область запроса. Сделать вещи потокобезопасными гораздо сложнее, чем кажется. Но в обычном веб-сценарии вы можете решить проблему до:
- база данных, которая дает вам атомарность и безопасность потоков бесплатно;
- сервисы без сохранения состояния, которые по определению являются поточно-ориентированными (нет состояния, которое может быть нарушено).
Так просто:
- сделает ваш даос без гражданства,
- делает ваши службы безгражданскими,
- если вам нужно какое-то временное состояние, используйте bean-объекты в области запроса.
getBean () является поточно-ориентированным, поэтому вы можете просто извлекать свои сервисы pojo и использовать их, если вы не сохраняете их как атрибуты сервлета.
В таком случае ваши единственные проблемы:
- бобы, живущие в сеансе;
- пользовательских кэшей;
- сложная пользовательская логика приложения;
Фасоль, живущая на сессиях, может быть неизменной (кроме случаев, когда применяются пункты 2 или 3). Пользовательские кэши обычно могут быть пропущены (во многих случаях они все равно не ускоряют работу - на самом деле! Если вы не можете доказать их полезность с помощью профилирования, отбросьте их). Это оставляет нас с номером 3: сложная логика приложения. А этот хитрый.
Во всяком случае, поскольку такая логика приложения по своей сути сложна, поточнобезопасность, вероятно, меньше всего нас беспокоит.