2008-10-14 3 views
1

его вопрос о том, что дао не будет содержать какое-либо состояние., в какой области должно быть DAO, как правило,

Однако для облегчения доступа к классу лучше использовать прототип (= новый каждый раз) или singleton?

Простое создание объекта для dao's дешево .. Обычно он имеет только sessionfactory, Доступ к объекту из списка одиночных игр может быть одинаково дорогостоящим.

clarfication: в центре внимания этого вопроса есть, если существует общее соглашение с областью определения даос.

ответ

3

Если ваш вопрос о архитектуре, я бы с обзорным объектов DAO в единицы работы или сделку вы делаете. Это уменьшает потенциал для загрязнение по перекрестным сделкам и резьбовые вопросы.

Если ваш вопрос о производительности, то ответ лежит в профилировщика, который дает вам точные номера для конкретной нагрузки.

0

Я пришел к выводу, что нет «идеального» способа решить это. Singleton scope, скорее всего, неправильный способ сделать это в веб-приложении, поскольку у вас будут разные сеансы - по одному на запрос. поэтому в области webapp-request может быть правильный ответ, но только если вы используете его исключительно в запросах, а не в фоновых задачах. ресурс прототипа является жизнеспособным, но только если вы не держите там сложные данные.

1

Или использовать прототип в сочетании с бассейном, как описано здесь:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop-api.html#aop-ts-pool

ИЛИ здесь:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/classic-aop-spring.html#classic-aop-ts-pool

EDIT: очевидно, я предполагаю, что весна используется здесь. В противном случае я приношу свои извинения