весенний mvc дао и отображение бобов обслуживания - PullRequest
4 голосов
/ 30 сентября 2010

Я новичок в весне и в спящем режиме.Я пытаюсь изучить лучшие практики и методологии проектирования в приложениях j2ee.

Мне удалось создать базовое весеннее веб-приложение mvc.Теперь посмотрим на это - как я должен отобразить мои служебные бины на дао-бины или просто использовать только дао-бины.- Есть ли необходимость в создании классов DAO singleton? - Если я использую один и тот же bea-компонент dao для jsp, то, например, onSubmit, если мне нужно вводить данные в несколько таблиц (dao-бины), то как мне это сделать.1 служебный бин на более чем 1 боб дао *

и любой справочный материал по разработке хорошего веб-приложения с использованием Spring Hibernate был бы признателен;)

спасибо

Ответы [ 4 ]

2 голосов
/ 30 сентября 2010

FWIW - я только что прошел похожий процесс обучения в Spring.Хорошая новость в том, что в Google есть много примеров;Плохая новость заключается в том, что не так много «законченных» примеров, которые хороши для новичков (также, если вы собираетесь нацеливаться на v3 Spring, есть много вещей, предшествующих v3, которые могут сбить с толку из-за новогобазовый уровень).Для меня сработало следующее: началось с примеров приложений на сайте SpringSource (http://www.springsource.org/documentation). Между их несколькими примерами есть примерно все, что вам понадобится, по крайней мере, в минимальной форме. Когда я нашел что-то в этихПримеры, в которых я нуждался, я гуглил на основе похожих терминов (некоторые из @ аннотаций и т. д.), чтобы найти более полную информацию / лучшие примеры по данной теме. Многие из этих поисков привели меня обратно на этот сайт, поэтому я начал часто посещать здесь- на многие хорошие вопросы уже даны ответы. Думаю, это не слишком проницательный ответ, но этот процесс заставил меня начать работать над основами в довольно быстрое время.

2 голосов
/ 30 сентября 2010

Вы должны использовать служебный компонент.там должна быть только служебная логика.DAO следует использовать только для работы с БД.

Теперь вы можете добавить несколько DAO в ваш служебный компонент.

1 голос
/ 30 сентября 2010

Служба предназначена для представления фасада пользователю, который предоставляет бизнес-функции, которые пользователь может выполнять. По сути, если у вас есть набор низкоуровневых сценариев использования, методы службы будут соответствовать отдельным действиям пользователя. Услуги являются транзакционными, обычно, если пользователь делает что-то, мы хотим, чтобы все последствия этого действия были зафиксированы вместе. Разделение между контроллером и службой означает, что у нас есть одно место для размещения специфичных для веб-приложений функций, таких как получение параметров запроса, проверка и выбор места для переадресации или перенаправления, а также отдельное место для размещения бизнес-логики - вещи, которые не зависит от веб-приложения API и о том, какие объекты обновляются с какими значениями и сохраняются, используя какие объекты доступа к данным.

Я вижу много случаев, когда люди думают, что им нужен один сервис для каждого дао. Я думаю, что они предполагают, что, поскольку объекты доступа к данным, а также контроллеры и модели достаточно механичны в отношении того, как они определены, сервисы должны быть одинаковыми, и они конструируют их безотносительно к реализуемым вариантам использования. Что происходит, в дополнение к большому количеству бесполезного стандартного кода службы, вся бизнес-логика заканчивается в контроллере, перепутанном с веб-специфическим кодом, и контроллеры становятся большими и неуправляемыми. Если ваше приложение очень простое, вы можете обойтись этим на некоторое время, но оно дезорганизовано, его сложно протестировать, и, как правило, это плохая идея. Мы должны стремиться к разделению проблем, хранению кода инфраструктуры в одном месте и бизнес-кода в другом, и правильное использование сервисов очень помогает в достижении этого.

1 голос
/ 30 сентября 2010

Уровень DAO и уровень обслуживания - это разные объекты:

DAO отвечает за получение и размещение отдельных объектов из \ в БД.Например, получите User (id, name, фамилию) из DB.

Сервисный уровень отвечает за вашу бизнес-логику.Он может использовать несколько объектов DAO для выполнения одного действия.Например, отправьте сообщение от одного пользователя другому и сохраните его в отправленной папке первого пользователя и в папке «Входящие» получателя.

...