какую область действия обычно должен иметь DAO
-
03-07-2019 - |
Вопрос
не может быть и речи о том, что дао не будет содержать никакого государства.
однако для более простого доступа к классу лучше использовать прототип (= каждый раз новый) или синглтон?
простое создание объектов обходится дао дешево..Как правило, он содержит только SessionFactory, доступ к объекту из списка синглтонов может быть одинаково дорогим.
уточнение:Основное внимание в этом вопросе уделяется тому, существует ли общее соглашение по определению даос.
Решение
Если ваш вопрос о архитектура, я бы выбрал область действия DAO Единица работы или транзакция, которую вы выполняете.Этот уменьшает потенциал для загрязнение перекрестных транзакций и проблемы с потоками.
Если ваш вопрос о производительность, то ответ лежит в пределах профилировщик, что дает вам точный номера для вашего конкретного нагрузка.
Другие советы
Или используйте прототип в сочетании с пулом, как описано здесь:
ИЛИ здесь:
РЕДАКТИРОВАТЬ:очевидно, я предполагаю, что здесь используется пружина.В противном случае я прошу прощения
я пришел к выводу, что не существует «идеального» способа решить эту проблему.Singleton Scope, скорее всего, является неправильным способом сделать это в веб-приложении, поскольку у вас будут разные сеансы — по одному на запрос.поэтому в веб-приложении область запроса может быть правильным ответом, но только если вы используете его исключительно в запросах, а не в фоновых задачах.Область прототипа жизнеспособна, но только если вы не храните там сложные данные.